Download the PHP package next/aop without Composer
On this page you can find all versions of the php package next/aop. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Vendor next
Package aop
Short Description An AOP package that is resident in in-memory PHP frameworks, such as nextphp, WebMan.
License Apache-2.0
Homepage https://github.com/next-laboratory/aop
Package aop
Short Description An AOP package that is resident in in-memory PHP frameworks, such as nextphp, WebMan.
License Apache-2.0
Homepage https://github.com/next-laboratory/aop
Please rate this library. Is it a good library?
Informations about the package aop
!!! 不能生产使用,仅作为研究用途
一款简单Aop实现。支持常驻内存型PHP应用。可以方便接入nextphp, Swoole,WebMan等框架。
环境要求
安装
使用,以下以webman为例
修改start.php文件
- paths 注解扫描路径
- collectors 注解收集器
- \Next\Aop\Collector\AspectCollector::class 切面收集器,取消后不能使用切面
- \Next\Aop\Collector\PropertyAttributeCollector::class 属性注解收集器,取消后不支持属性自动注入
- runtimeDir 运行时,生成的代理类和代理类地图会被缓存到这里
编写切面类,实现AspectInterface接口
修改方法添加切面注解
注意上面添加了两个注解,属性和方法注解的作用分别为注入属性和切入方法,可以直接在控制器中打印属性$request发现已经被注入了,切面注解可以有多个,会按照顺序执行。具体实现可以参考这两个类,注意这里的Inject注解并不是从webman容器中获取实例,所以使用的话需要重新定义Inject以保证单例
你也可以使用AspectConfig
注解类配置要切入的类,例如上面的切面类
那么BaconQrCode\Writer
类的writeFile
方法将会被切入,该注解可以传递第三个参数数组,作为该切面构造函数的参数
启动
打开浏览器打开对应页面
控制台输出内容为
All versions of aop with dependencies
PHP Build Version
Package Version
Requires
php Version
^8.2
next/utils Version ^0.1
next/di Version ^0.1
nikic/php-parser Version ^5.1
symfony/finder Version ^7.1
next/utils Version ^0.1
next/di Version ^0.1
nikic/php-parser Version ^5.1
symfony/finder Version ^7.1
The package next/aop contains the following files
Loading the files please wait ....