laravel5.2 - Laravel使用phpstorm时,提示“这是通过魔术方法访问字段”,有什么不好么?

WBOY
发布: 2016-06-06 20:06:17
原创
1551 人浏览过

Laravel使用phpstorm时,提示“这是通过魔术方法访问字段”,有什么不好么?
见如下截图红框中:
laravel5.2 - Laravel使用phpstorm时,提示“这是通过魔术方法访问字段”,有什么不好么?

如果这样不好,那应该怎么才好?

回复内容:

Laravel使用phpstorm时,提示“这是通过魔术方法访问字段”,有什么不好么?
见如下截图红框中:
laravel5.2 - Laravel使用phpstorm时,提示“这是通过魔术方法访问字段”,有什么不好么?

如果这样不好,那应该怎么才好?

不知道这个问题为何被关闭, 我重新打开了来说两句吧

没错, PHP确实提供了一系列魔术方法可以让你在__set, __get, __call等等中实现一个未定义的调用, 但个人愚见这些是PHP为了弥补本身的缺陷而添加进来的设计

至于该不该用, 什么时候用, 取决于你的业务场景, 但个人仍然认为这个特性使用要节制, 毕竟这是"魔术"

优点是:

  1. 一定程度上的方便, 你会在很多DAL层的库中发现运用了这个特性

  2. 一定程度上你可以用这个特性实现代理模式, 函数重载等PHP本身没有在语言层面支持的特性

缺点是:

  1. 开发不够友好, IDE自动完成缺失, 无法生成文档(phpdoc)

  2. 如果你广泛采用魔术方法, 那很有可能随着你的业务逻辑的复杂, 你的魔术方法将会非常臃肿和难以阅读

  3. 也许有性能问题(未验证)

  4. 提高团队合作的理解和沟通成本, 本来$obj->getName()扫一眼就知道大概是什么功能的函数, 现在却要猜行不行, 有没有在背后实现魔术方法支持这个$obj->name调用

相关标签:
php
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!