Provides
Equatable
for PHP 7+ (inspired by Java).
composer require litgroup/equatable:^2.0
interface Equatable
{
/**
* Checks if this object is equal to another one.
*/
public function equals(Equatable $another): bool;
}
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()
;
}
}
See LICENSE file.