怎样评价php的 Annotation 注解功能 ?
首先,你觉得你说的注解像不像注释?
php一直都没有官方的注解功能。
那你这个问题的前提已经倒塌了一半。
那么你提到的这个东西到底是什么呢?
这个东西是phpdoc,类似javadoc,用来生成文档的注释,
但是你要是有心,也可以当成注解来用。
当然是用反射实现,类似于注解,但是和注解完全不同。
因为,这就是个注释!
php通过反射实现,说白了,先把函数的注释取到,用语法解析或者正则之类的方式匹配注解符号,假装是注解,然后处理“注解”。
你的代码来自symfony,底层也就是doctrine annotations,实现方式是获取注解,然后表面上自己实现了一套语法解析器来解析注解,当然底层还是部分用了正则。
和java的区别如下:
java通过web容器实现注解加载,因此一般情况下容器启动便会加载这些路由,后续根据这些路由进行分发,也因此RequestMapping等注解可以随便写在哪儿,当然一般也是指定某个或者某几个包内,防止全量扫描。
php通过反射实现,通过访问index.php进行加载注解,然后路由匹配。一般情况下第一次加载就要全量扫描特定的文件夹一次,然后生成“注解”的缓存以提高性能,然后可能会定期“缓存失效”“重新扫描”,因此这种所谓的注解只有在某个文件夹内生效,例如Controllers。
php什么时候能有自己的原生注解:
php8.0+jit或许有戏……
建议参考:
朝花夕拾-JAVA注解、PHP注解?
杠乎最近推送了很多批判类的帖子,很多帖子是一堆XX树了一个假靶子,把回答中的小粉红批判了一通。
那种答案我特别有兴趣,可是很多情况下我看完了所有答案,没有一个小粉红,连个偏左的都没有啊,就只是一堆XX在自娱自乐。
正如这个回答中某些人把laravel拉出来批判一番,然后狂吹一把symfony。
然而这就是symfony的教程里的代码啊,并不是他所针对的laravel的代码。
而且,laravel没这种用法啊,只有symfony有,呵呵。
laravel是一个大量引用symfony框架代码的框架啊,理念上也有很多相似的,laravel也为symfony挡了不少子弹,
你这样捧一个贬一个,真的是symfony的粉丝么?我怀疑你是反串黑。
【怎样评价php的 Annotation 注解功能 ?】
■网友
早在13年就见到Symfony这个框架用到这个用法。
但是如果你想真正了解这个用法建议你看Java的Spring的Controller和路由关系
所以这种用法很古老了。
担心戳破某些所谓优雅框架水军的所谓现代化用法的谎言,我还是匿了。
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 怎样成为一名合格的Python程序员?
- 怎样评价华为、诺基亚、中兴中标中国移动高端路由交换设备扩容集采
- 怎样评价类似前橙会、百老汇、南极圈这样类型的离职帮抱团,对企业的积极意义和消极意义
