大家讨论下 PHP 实际一般的项目需不需要 AOP 的方式来实现
最近在看AOP的东西,虽然简化了一些代码,减少代码功能的耦合。
- 但还是一样的要动代码,一般都是在注释里面写的,如果是这种,干嘛不直接写在方法。
- 可能有人会说,AOP,有before,after等等,但是实际情况下,这些东西在具体的业务场所并不常。
- 偶尔会用一下,直接写一个静态类的方法,或是写一个基类,就完全解决了。
- 而且PHP是脚本语言,如果是PHP-FPM的方式就可以直接用,没必要。
- 当然如果你是用的swoole这种长驻进程的方式,另外再说
大部分的项目都很小,不需要使用这种东西,只会给简单的系统增加复杂性。就像谁会在小项目里使用设计模式一样,可能最多在某个容易变动的地方埋个扩展点。但是项目大的,代码的质量就提现出来了。AOP主要好处我觉得在于 降低模块的耦合度,系统更易扩展,更好的代码复用。比如面向对象中的开闭原则,按照你上面说的的 当需求改动的时候,你就需要侵入式的修改代码。没什么的,能跑起来的程序就是好程序,傻瓜都能看懂的代码就是好代码。不能产生实际价值的代码写的再漂亮有啥意义。 :joy:
中间件算是AOP吧
中间件也可以理解为AOP,但还是没有AOP来的全面。 最近的框架HR SWOFT等等,把JAVA的AOP引入,在一般的项目中完全用不到。 当然我们讨论的一切前提是一般的普通的项目,不包含那种日活上千万,上亿的项目。【因为大公司都是有自己的框架,开发规范,基本不太会使用外面的开源的框架。】
而且这个东西对于新手,或是经验不足的小团队,反正增加很多的学习的成本,特别改变别人的CODING习惯。
至今未发现AOP的应用场景
php没有真正编译环节的加持,很难实现可用的
AOP
。但我觉得middleware
的设计还更小巧精妙一点,不过唯一的缺点就是他的适用范围比AOP
小很多。@fatrbaby 中间件,不就是AOP 思想的体现吗