首頁 > 後端開發 > php教程 > PHP一个种AOP的实现

PHP一个种AOP的实现

WBOY
發布: 2016-06-13 11:35:49
原創
1382 人瀏覽過

PHP一个类AOP的实现

由于项目有一个需求,需要在原来的代码上做一个封装.?由于不想修改原有代码,?查了一下,?PHP没有方便的支持AOP的方法,于是参考了网上一些文章,写了个包装器,?可以在不修改原有代码的基础上为函数添加before和after实现.

?
标签:
?

代码片段(3)[全屏查看所有代码]

1.?[代码]核心类?????

01 <?php
02 ?
03 /**
04 ?* 包装器(Wrapper).
05 ?* Wrapper是一个AOP_LIKE的实现. 也可以看作监听者模式的实现.
06 ?* 一个Wrapper报装了一个对象(source). source可以是任意对象(不包括数组及原子类型),甚至是一个Wrapper.
07 ?*
08 ?* 包装器可以任意添加饰品(Decoration).通过Wrapper调用source的函数的流程将是:
09 ?*? unpacking --> teardown --> open --> setup --> packing.
10 ?*
11 ?*? 例如调用source->doXX(),各个流程将是:
12 ?*? unpacking:? 解包. 这是调用任意source的函数都会调用的方法;
13 ?*? teardown:?? 撕掉饰品. 对于Wrapper中的每个Decoration,调用其before()函数;
14 ?*? open:?????? 真正调用source->doXX()函数;
15 ?*? setup:????? 重新贴上饰品. 对于Wrapper中的每个Decoration,调用其after()函数;
16 ?*? packing:??? 重新打包.? 这是调用任意source的函数都会调用的方法;
17 ?*
18 ?*/
19 class?Wrapper{
20 ????private?$source;
21
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板