自动获取Getter和Setter性能选项而不是__call

时间:2012-05-14 06:21:23

标签: php oop

我正在寻找不必在代码中编写getter和setter的选项。

目前我正在使用__call自动将getter和setter映射到我的属性,但是我被告知这很慢。

我有什么选择,因为编写getter和setter只返回属性不是很好地利用了我们的开发人员时间,并且维护它们更令人头疼

2 个答案:

答案 0 :(得分:2)

虽然__call()的性能可能不是很好,但我看到的唯一替代方法是从IDE生成代码。这也改进了许多最近编辑所具有的代码洞察功能,允许编辑器在您键入代码时建议方法名称;非常方便的东西!

另请参阅:How to generate getter and setter in eclipse (php)

顺便说一下 - __get()__set()可能会遇到相同的性能问题,现在介绍它们会大大改变您现有的代码(不是一个好主意)。

修改

我找不到任何关于如何动态维护getter和setter的好文章,所以我想到了另一种方式(可能适用于你也可能不适用)。

您可以使用tokenizerReflection(或两者)编写代码转换器,为您负责维护。然后应该在保存时将其集成到IDE中,或者每次文件更改时都必须动态完成。

无论如何,只是一个想法:)

答案 1 :(得分:0)

好吧,您可以使用__set()和__get(),或者创建公共属性。我还没有听说过任何其他“神奇”方法。