访问 PHP 类的属性的最佳方法是什么?我可以使用内置的 php 访问器魔术方法,或者我应该对get*()
andset*()
方法进行硬编码。当我在处理大型代码库时,以后重构代码最有效和最好的方法是什么。我要求这个非常大的代码库。将其视为社交网络的发展。
问问题
111 次
1 回答
0
如果我不知道这样做的目的,我无法说什么是更好或更坏。
在我看来,最好使用专用的 getter/setter,而不是编码__get()
或__set()
魔术方法。
原因有二:
- 我的 IDE 它不会自动完成以魔术方法编码的伪属性。我不知道该属性应该是什么类型,即使有一个具有此名称的属性。
- 当我需要更改 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 回答