Избегание добытчиков и сеттеров в PHP 7.4 - PullRequest
0 голосов
/ 03 марта 2020

Поскольку 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;
}

Прав ли я, что это хорошая идея? Что я должен учитывать при проведении такого рефакторинга?

...