过去我一直是您的情况。我去寻找魔术方法。
这是一个错误,问题的最后一部分说明了一切:
- 这 比 (getters / setters) 慢
- 有 没有自动完成 (这是一个重大的问题,实际上),以及 式管理 由IDE的重构和代码浏览(在Zend Studio的/ PhpStorm这可能与处理
@property
PHPDoc的注解,但是需要保持他们:相当痛苦) - 该 文档 (phpdoc)与应该如何使用您的代码不匹配,并且查看您的类也不会带来太多答案。这很混乱。
- 编辑后添加:具有属性的吸气剂 与“真实”方法更加一致, 在该 方法中 ,
getXXX()
不仅返回私有属性,而且执行真实逻辑。您使用相同的命名。例如,您具有$user->getName()
(返回私有属性)和$user->getToken($key)
(计算出的)。当您的获取者获得的不仅仅是获取者并且需要做一些逻辑时,一切仍然是一致的。
最后,这是IMO的最大问题: 这是魔术
。魔术非常非常糟糕,因为您必须知道魔术如何工作才能正确使用它。这是我在团队中遇到的一个问题:每个人都必须了解魔术,而不仅仅是您。
getter和setter很难写(我讨厌他们),但是他们值得。



