AOP插件

v0.0.1
版本
2022-01-13
版本更新時間
99
安裝
2
star
簡介
同時支持直接new和從容器獲取需要被切入的對象,也支持三方庫的切入vendor目錄下的類方法, 在不改變現(xiàn)有代碼的情況下切入需要切入的前置后置方法,用在統(tǒng)計http請求,Rpc,組件鏈路追蹤,日志記錄,統(tǒng)計函數(shù)耗時 修改函數(shù)返回結(jié)果的應(yīng)用場景
安裝
composer require xiaoyangguang/aop
使用
自定義切面 照著Xiaoyangguang\Aop\Examplex寫
<?php
namespace Xiaoyangguang\Aop\Example;
use Xiaoyangguang\Aop\AspectInterface;
class TAspect implements AspectInterface
{
/**
* 前置通知
* @param $params
* @param $method
* @return mixed|void
*/
public static function beforeAdvice(&$params, $class, $method): void
{
var_dump('beforeAdvice');
}
/**
* 后置通知
* @param $res
* @param $params
* @param $method
* @return mixed|void
*/
public static function afterAdvice(&$res, $params, $class, $method): void
{
var_dump('afterAdvice');
}
public static function exceptionHandler($throwable, $params, $class, $method): void
{
// TODO: Implement exceptionHandler() method.
}
}
- 配置config\plugin\xiaoyangguang\aop\aop.php文件
- 自定義切入類需要實現(xiàn)Xiaoyangguang\Aop\AspectInterface接口并配置到以上aop配置文件中
- 最后啟動服務(wù)。
效果
php start.php start
curl http://127.0.0.1:8787
此時控制臺打印前置和后置切面函數(shù)打印值
string(12) "beforeAdvice"
string(11) "afterAdvice"