diff --git a/src/EntityTrait.php b/src/EntityTrait.php index fabd579..f071ea7 100644 --- a/src/EntityTrait.php +++ b/src/EntityTrait.php @@ -14,7 +14,7 @@ trait EntityTrait { use ObjectTrait; - public function __construct(Model $model, string $id, ?stdClass $data = null) + final public function __construct(Model $model, string $id, ?stdClass $data = null) { $this->model = $model; $this->data = $data; @@ -24,7 +24,7 @@ public function __construct(Model $model, string $id, ?stdClass $data = null) $this->data->id = $id; } - public function __set($name, $value) : void + final public function __set($name, $value) : void { if ($name === 'id') { throw new OverridingIdentityOfEntityException('You can not change the "id" of an entity!'); @@ -35,12 +35,12 @@ public function __set($name, $value) : void $this->data->{$name} = $value; } - public function __unset($name) + final public function __unset($name) { unset($this->data->{$name}); } - public static function createFromJsonFile(string $jsonFilePath, string $id) : EntityInterface + final public static function createFromJsonFile(string $jsonFilePath, string $id) : EntityInterface { if (!file_exists($jsonFilePath)) { throw new CouldNotFindJSONSchemaFileException( @@ -51,17 +51,17 @@ public static function createFromJsonFile(string $jsonFilePath, string $id) : En return self::createFromJson($json, $id); } - public static function createFromJson(string $json, string $id) : EntityInterface + final public static function createFromJson(string $json, string $id) : EntityInterface { - return new self(new Model($json), $id); + return new static(new Model($json), $id); } - public function entityId() : string + final public function entityId() : string { return $this->data->id; } - public function validatePartially(array $requiredFields) : bool + final public function validatePartially(array $requiredFields) : bool { $model = $this->model->getModel(); $model->required = $requiredFields; diff --git a/src/ObjectTrait.php b/src/ObjectTrait.php index 8bb47f5..8bbc948 100644 --- a/src/ObjectTrait.php +++ b/src/ObjectTrait.php @@ -19,12 +19,12 @@ trait ObjectTrait */ private $data; - public function __get($name) + final public function __get($name) { return $this->data->{$name}; } - public function __isset($name) : bool + final public function __isset($name) : bool { return property_exists($this->data, $name); } @@ -60,7 +60,7 @@ public function equals($rightHandedObject) : bool return (string) json_encode($this->data) === (string) json_encode($rightHandedObject); } - public function jsonSerialize() : stdClass + final public function jsonSerialize() : stdClass { return $this->data; } diff --git a/src/ValueObjectBuilder.php b/src/ValueObjectBuilder.php index 4eda85f..ef1399e 100644 --- a/src/ValueObjectBuilder.php +++ b/src/ValueObjectBuilder.php @@ -9,7 +9,7 @@ use Selami\Entity\Exception\InvalidMethodNameException; use function in_array; -class ValueObjectBuilder +final class ValueObjectBuilder { private $jsonSchema; private $properties; diff --git a/src/ValueObjectTrait.php b/src/ValueObjectTrait.php index 79ef857..001adfe 100644 --- a/src/ValueObjectTrait.php +++ b/src/ValueObjectTrait.php @@ -12,7 +12,7 @@ trait ValueObjectTrait { use ObjectTrait; - public function __construct(Model $model, stdClass $data) + final public function __construct(Model $model, stdClass $data) { $this->model = $model; $this->data = $data; @@ -29,7 +29,7 @@ final public function __unset($name) throw new BadMethodCallException('Can\'t manipulate Immutable Object'); } - public static function createFromJsonFile(string $filePath, stdClass $data) : ValueObjectInterface + final public static function createFromJsonFile(string $filePath, stdClass $data) : ValueObjectInterface { if (!file_exists($filePath)) { throw new InvalidArgumentException(sprintf('Model definition file (%s) does not exist!', $filePath)); @@ -38,8 +38,8 @@ public static function createFromJsonFile(string $filePath, stdClass $data) : Va return self::createFromJson($json, $data); } - public static function createFromJson(string $json, stdClass $data) : ValueObjectInterface + final public static function createFromJson(string $json, stdClass $data) : ValueObjectInterface { - return new self(new Model($json), $data); + return new static(new Model($json), $data); } }