由于 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;
}
我认为这是个好主意吗?在进行这样的重构时我应该考虑什么?