Download the PHP package x2nx/webman-aop without Composer
On this page you can find all versions of the php package x2nx/webman-aop. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Please rate this library. Is it a good library?
Informations about the package webman-aop
基于 Webman 框架实现的高性能、高可用的 AOP (面向切面编程) 插件。
特性
- ✅ 标准 AOP 切面类型:支持 Before、After、Around、AfterReturning、AfterThrowing
- ✅ 运行时代理:高性能的动态代理实现,无需生成文件
- ✅ 高可用:完善的错误处理和日志记录
- ✅ 符合 Webman 规范:使用 Bootstrap 接口和中间件机制
- ✅ PHP 8 Attributes:使用原生属性标记切面
- ✅ 优先级支持:多个切面按优先级执行
- ✅ 类级别和方法级别:支持两种级别的切面
- ✅ 抽象基类:提供 AbstractAspect 基类,简化切面开发
安装
通过 Composer 安装:
配置
配置文件:config/plugin/x2nx/webman-aop/app.php
使用方式
方法级别切面
类级别切面
多个切面(按优先级)
创建自定义切面
方式一:实现 AspectInterface 接口
方式二:继承 AbstractAspect 基类(推荐)
AOP 通知类型说明
Before(前置通知)
在目标方法执行之前执行,可以:
- 记录日志
- 参数验证
- 权限检查
- 缓存检查
After(后置通知)
在目标方法执行之后执行(无论是否抛出异常),可以:
- 清理资源
- 记录执行时间
- 释放锁
Around(环绕通知)
可以完全控制目标方法的执行,可以:
- 修改参数
- 修改返回值
- 决定是否执行目标方法
- 实现缓存、事务等
AfterReturning(返回后通知)
在目标方法正常返回后执行(不抛出异常时),可以:
- 记录返回值
- 处理返回结果
- 发送通知
AfterThrowing(异常后通知)
在目标方法抛出异常后执行,可以:
- 记录异常
- 错误处理
- 发送告警
通知执行顺序
当多个切面应用到同一个方法时,执行顺序如下:
- 所有切面的 Before 通知(按优先级顺序)
- 所有切面的 Around 通知(按优先级顺序,形成链式调用)
- 目标方法执行
- 所有切面的 AfterReturning 通知(如果正常返回)
- 所有切面的 AfterThrowing 通知(如果抛出异常)
- 所有切面的 After 通知(无论是否抛出异常)
JoinPoint API
完整示例
缓存切面
事务切面
许可证
MIT
All versions of webman-aop with dependencies
PHP Build Version
Package Version
The package x2nx/webman-aop contains the following files
Loading the files please wait ...