大家讨论下 PHP 实际一般的项目需不需要 AOP 的方式来实现

最近在看AOP的东西,虽然简化了一些代码,减少代码功能的耦合。

  1. 但还是一样的要动代码,一般都是在注释里面写的,如果是这种,干嘛不直接写在方法。
  2. 可能有人会说,AOP,有before,after等等,但是实际情况下,这些东西在具体的业务场所并不常。
  3. 偶尔会用一下,直接写一个静态类的方法,或是写一个基类,就完全解决了。
  4. 而且PHP是脚本语言,如果是PHP-FPM的方式就可以直接用,没必要。
  5. 当然如果你是用的swoole这种长驻进程的方式,另外再说
aop
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6

大部分的项目都很小,不需要使用这种东西,只会给简单的系统增加复杂性。就像谁会在小项目里使用设计模式一样,可能最多在某个容易变动的地方埋个扩展点。但是项目大的,代码的质量就提现出来了。AOP主要好处我觉得在于 降低模块的耦合度,系统更易扩展,更好的代码复用。比如面向对象中的开闭原则,按照你上面说的的 当需求改动的时候,你就需要侵入式的修改代码。没什么的,能跑起来的程序就是好程序,傻瓜都能看懂的代码就是好代码。不能产生实际价值的代码写的再漂亮有啥意义。 :joy:

5年前 评论

中间件也可以理解为AOP,但还是没有AOP来的全面。 最近的框架HR SWOFT等等,把JAVA的AOP引入,在一般的项目中完全用不到。 当然我们讨论的一切前提是一般的普通的项目,不包含那种日活上千万,上亿的项目。【因为大公司都是有自己的框架,开发规范,基本不太会使用外面的开源的框架。】

而且这个东西对于新手,或是经验不足的小团队,反正增加很多的学习的成本,特别改变别人的CODING习惯。

5年前 评论

至今未发现AOP的应用场景

4年前 评论
fatrbaby

php没有真正编译环节的加持,很难实现可用的AOP。但我觉得middleware的设计还更小巧精妙一点,不过唯一的缺点就是他的适用范围比AOP小很多。

4年前 评论

@fatrbaby 中间件,不就是AOP 思想的体现吗

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!