0

由于 PHP 7.4 支持类型化的类属性:https ://www.php.net/manual/en/migration74.new-features.php#migration74.new-features.core.typed-properties 。看起来可以消除很多代码,特别是负责控制属性类型的实体和 DTO 中的 getter 和 setter。例如这样的片段:

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;
}

我认为这是个好主意吗?在进行这样的重构时我应该考虑什么?

4

0 回答 0