PHP AOP 扩展 Xaop 现在支持属性 AOP 模式啦

开源中国首席C菜鸟
 开源中国首席C菜鸟
发布于 2018年09月23日
收藏 3

支持属性AOP模式之前,Xaop仅支持方法的切入(文档注释注解模式 与 方法注入两种模式的 AOP),现在已经支持属性的AOP啦,下面来一个demo示例:

class Swing
{
    public $di;
}

Xaop::addPropertyBeforeReadAop(Swing::class, "di", function($object, $prop){
    var_dump($object, $prop);
    echo 'hello';
});
Xaop::addPropertyAfterReadAop(Swing::class, "di", function(){
    echo 'afterRead';
});

$swing = new Swing();
$swing->di;

属性切入AOP模式下,回调函数支持匿名函数与数组模式的回调函数也就是如下两种模式都支持:

Xaop::addPropertyBeforeReadAop(Swing::class, "di", function($object, $prop){
    var_dump($object, $prop);
    echo 'hello';
});

Xaop::addPropertyBeforeReadAop(Swing::class, "di", [ Swing::class, "_before" ]);

 回调函数包含有两个参数:$object, $propertyName 分别表示属性所属的类的对象属性方法名称。

在属性AOP模式下,没有实现环绕模式的原因在于考虑到可以使用魔术方法 "__get" 与 "__set" 来实现,因此业务上可以避免两次问题。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:PHP AOP 扩展 Xaop 现在支持属性 AOP 模式啦
加载中

最新评论(7

左华栋
左华栋

引用来自“左华栋”的评论

赞一个吧,东西是好东西,只可惜很多人用不上。
社区还是更加喜欢成品框架,可以方便做外包

引用来自“开源中国首席C菜鸟”的评论

这只是一个扩展,丰富功能使用的

引用来自“左华栋”的评论

嗯,所以很少有人用了。。。类似的东西,golang社区接受程度远远高于php社区

引用来自“开源中国首席C菜鸟”的评论

现在都转go了吗?
php 转golang 的确实不少。
很多phper 都太浮躁,AOP 这种东西反而接受程度不高。
我们转的node.js ,typescript 支持注解,所以...
开源中国首席C菜鸟
开源中国首席C菜鸟

引用来自“左华栋”的评论

赞一个吧,东西是好东西,只可惜很多人用不上。
社区还是更加喜欢成品框架,可以方便做外包

引用来自“开源中国首席C菜鸟”的评论

这只是一个扩展,丰富功能使用的

引用来自“左华栋”的评论

嗯,所以很少有人用了。。。类似的东西,golang社区接受程度远远高于php社区
现在都转go了吗?
左华栋
左华栋

引用来自“左华栋”的评论

赞一个吧,东西是好东西,只可惜很多人用不上。
社区还是更加喜欢成品框架,可以方便做外包

引用来自“开源中国首席C菜鸟”的评论

这只是一个扩展,丰富功能使用的
嗯,所以很少有人用了。。。类似的东西,golang社区接受程度远远高于php社区
开源中国首席C菜鸟
开源中国首席C菜鸟

引用来自“ninja911”的评论

java风.....不太感冒
有三种风格,喜欢哪种都可以哦
ninja911
ninja911
java风.....不太感冒
开源中国首席C菜鸟
开源中国首席C菜鸟

引用来自“左华栋”的评论

赞一个吧,东西是好东西,只可惜很多人用不上。
社区还是更加喜欢成品框架,可以方便做外包
这只是一个扩展,丰富功能使用的
左华栋
左华栋
赞一个吧,东西是好东西,只可惜很多人用不上。
社区还是更加喜欢成品框架,可以方便做外包
返回顶部
顶部