-1

访问 PHP 类的属性的最佳方法是什么?我可以使用内置的 php 访问器魔术方法,或者我应该对get*()andset*()方法进行硬编码。当我在处理大型代码库时,以后重构代码最有效和最好的方法是什么。我要求这个非常大的代码库。将其视为社交网络的发展。

4

1 回答 1

0

如果我不知道这样做的目的,我无法说什么是更好或更坏。

在我看来,最好使用专用的 getter/setter,而不是编码__get()__set()魔术方法。

原因有二:

  1. 我的 IDE 它不会自动完成以魔术方法编码的伪属性。我不知道该属性应该是什么类型,即使有一个具有此名称的属性。
  2. 当我需要更改 getter/setter 的行为时,很容易找到它的位置。我只更改方法代码,而不是大的__get()or __set()

有时我使用类似的东西

public function __get($name){ // no error handling, but should be some
  return $this->{'get'.$name}();
}

和吸气剂

public function getX(){ ...}
public function getY(){ ...}

等等。

这使我可以缩短打字时间,但将所有内容留给吸气剂。

调用伪属性对我来说也有一些缺点,因为任何警告/错误/异常/...都会在__get()方法中发送,而不是在 getter 中发送——我不知道$name给出了什么等等。

编辑

使用专用方法获取和设置属性在继承中也更加清晰。记录软件可以标记 getter 已被覆盖,所以我知道哪个类更改了代码,以及哪个使用了它的祖先的代码。如果__get()我更改例如代码,它将被标记为覆盖$name。“坐标”,但我不改变“海平面”(我的意思是并不总是清楚被覆盖的内容)。

于 2013-05-16T12:18:30.373 回答