Поскольку PHP 7.4 поддерживает типизированные свойства класса: https://www.php.net/manual/en/migration74.new-features.php#migration74 .new-features.core.typed-properties . Похоже, что можно было бы исключить много кода, в частности, методы получения и установки в сущностях и DTO, которые отвечали за управление типами свойств. Например, такой фрагмент:
class Foo implements BarInterface
{
/**
* @var int
*/
protected $id;
/**
* @var int|null
*/
protected $type;
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param int $id
* @return $this
*/
public function setId(int $id)
{
$this->id = $id;
return $this;
}
/**
* @return int|null
*/
public function getType(): ?int
{
return $this->type;
}
/**
* @param int|null $type
* @return $this
*/
public function setType(?int $type)
{
$this->type = $type;
return $this;
}
}
Может быть изменен на:
class Foo implements BarInterface
{
public int $id;
public ?int $type;
}
Прав ли я, что это хорошая идея? Что я должен учитывать при проведении такого рефакторинга?