Skip to content
This repository has been archived by the owner on Oct 28, 2023. It is now read-only.

LitGroup/equatable.php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Equatable for PHP

Provides Equatable for PHP 7+ (inspired by Java).

Version Downloads License

Installation

composer require litgroup/equatable:^2.0

What is inside

interface Equatable
{
    /**
     * Checks if this object is equal to another one.
     */
    public function equals(Equatable $another): bool;
}

Example of usage

namespace Acme;

use LitGroup\Equatable\Equatable;

class User
{
    private $username;
    private $email;
    
    public function __construct(string $username, string $email)
    {
        $this->username = $username;
        $this->email = $email;
    }
    
    public function getUsername(): string
    {
        return $this->username;
    }
    
    public function getEmail(): string
    {
        return $this->email;
    }
    
    /**
     * Example of implementation of Equatable::equals()
     */
    public function equals(Equatable $another): bool
    {
        return 
            $another instanceOf User &&
            $another->getUsername() == $this->getUsername() &&
            $another->getEmail() == $this->getEmail()
        ;
    }
}

LICENSE

See LICENSE file.

About

Provides Equatable interface for PHP 7+

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages