for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php declare(strict_types=1);
namespace DanielPieper\MergeReminder\ValueObject;
class User
{
public const STATE_ACTIVE = 'active';
public const STATE_BLOCKED = 'blocked';
/** @var int */
private $id;
/** @var string */
private $username;
private $name;
private $state;
private $avatarUrl;
private $webUrl;
/**
* Project constructor.
* @param int $id
* @param string $username
* @param string $name
* @param string $state
* @param string $avatarUrl
* @param string $webUrl
*/
public function __construct(
int $id,
string $username,
string $name,
string $state,
string $avatarUrl,
string $webUrl
) {
$this->id = $id;
$this->username = $username;
$this->name = $name;
$this->state = $state;
$this->avatarUrl = $avatarUrl;
$this->webUrl = $webUrl;
}
* @param array $user
* @return User
public static function fromArray(array $user): self
return new self(
(int)$user['id'],
(string)$user['username'],
(string)$user['name'],
(string)$user['state'],
(string)$user['avatar_url'],
(string)$user['web_url']
);
* @return int
public function getId(): int
return $this->id;
* @return string
public function getUsername(): string
return $this->username;
public function getName(): string
return $this->name;
public function getState(): string
return $this->state;
* @return bool
public function isActive(): bool
return $this->state === self::STATE_ACTIVE;
public function isBlocked(): bool
return $this->state === self::STATE_BLOCKED;
public function getAvatarUrl(): string
return $this->avatarUrl;
public function getWebUrl(): string
return $this->webUrl;