项目地址:http://pecl.php.net/package/AOP首先介绍AOP编程,又称面向切面编程,是一种使用外部注入代替的非侵入式编程方式嵌入代码。可以实现很好的模块低耦合。假设你的框架有一个Frameworkd::init方法,其功能是初始化框架资源。现在还有数据库和模板初始化也需要在这个阶段执行。传统的做法是只修改Framework::init以添加db和模板方法调用。如果以后增加新的模块,比如缓存。然后需要修改Frameworkd::init的代码。这种做法显然是侵入性的。当然也可以通过hooklist的方式来实现。在需要外部注入的地方添加一个钩子列表,遍历执行外部注入的接口。但是它远没有AOP强大,而且还需要不断的给hook链表添加遍历点。如果采用AOP编程,只需要对外注入一个函数,当执行Framework::init时,就会执行指定的代码。doAdmin*()','adviceForDoAdmin');aop_add_after('MyServices->doAdmin*()','adviceForDoAdmin2');$o=newMyServices;$o->doAdminStuff1();$o->doAdminStuff2();执行结果:调用doAdminStuff1AOP[2]RunAOP[1]RunCallingdoAdminStuff2AOP[2]RunAOP[1]Run转自http://rango.swoole.com/archi...
