Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 自动Getter和Setter性能选项,而不是调用_Php_Oop - Fatal编程技术网

Php 自动Getter和Setter性能选项,而不是调用

Php 自动Getter和Setter性能选项,而不是调用,php,oop,Php,Oop,我正在寻找不必在代码中编写getter和setter的选项 目前我正在使用_调用自动将getter和setter映射到我的属性,但是我被告知这非常缓慢 我有什么选择,因为编写getter和setter只返回属性并不能很好地利用开发人员的时间,而维护它们更是一件令人头痛的事。好吧,您可以使用u set()和u get(),或者公开属性。我还没有听说过任何其他“神奇”的方法可以做到这一点。虽然\u call()的性能可能不太好,但我为您看到的唯一选择是从IDE生成代码。这还改进了许多最近的编辑器的代

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

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

我有什么选择,因为编写getter和setter只返回属性并不能很好地利用开发人员的时间,而维护它们更是一件令人头痛的事。好吧,您可以使用u set()和u get(),或者公开属性。我还没有听说过任何其他“神奇”的方法可以做到这一点。

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

另见:

顺便说一句,
\uuu get()
\uu set()
可能会有相同的性能问题,现在引入它们将极大地改变现有代码(这不是一个好主意)

编辑

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

您可以编写一个代码转换器,通过使用
标记器
反射
(或两者兼有)为您进行维护。这应该在保存时集成到IDE中,或者每次文件更改时都必须动态地完成


不管怎么说,这只是一个想法:)

一些ide可以为您实现这一点。代码生成未得到充分利用。这将改变现有代码;想象一下必须将所有的
->getVariable()
重命名为
->variable
。。。当其他人使用您的API时,情况会变得更糟。我不使用公共属性的原因是使用getter和setter来执行项目发展过程中可能需要的任何转换和/或验证。因此,我想只有从IDE生成的方法才能做到这一点。IDE可以为我生成getter和setter,是的,但是,由于我在一个基于迭代的开发环境中工作,这些变化是“高速的”,因此我们可能会发现,随着我们的移动,40-50%的属性可能会发生变化。使docblocks保持最新是一项挑战