0

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

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

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

4

2 回答 2

2

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

另请参阅:如何在 Eclipse (php) 中生成 getter 和 setter

顺便说一句 - __get()and__set()可能会有相同的性能问题,现在引入它们会极大地改变你现有的代码(不是一个好主意)。

编辑

我找不到任何谈论如何动态维护 getter 和 setter 的好文章,所以我想到了另一种方法(可能对你有用,也可能对你不起作用)。

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

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

于 2012-05-14T06:32:49.403 回答
0

好吧,您可以使用 __set() 和 __get(),或者制作公共属性。我还没有听说过任何其他“魔术”方法可以做到这一点。

于 2012-05-14T06:25:13.683 回答