AOP插件

v0.0.1
版本
2022-01-13
版本更新時(shí)間
101
安裝
2
star
簡(jiǎn)介
同時(shí)支持直接new和從容器獲取需要被切入的對(duì)象,也支持三方庫(kù)的切入vendor目錄下的類(lèi)方法, 在不改變現(xiàn)有代碼的情況下切入需要切入的前置后置方法,用在統(tǒng)計(jì)http請(qǐng)求,Rpc,組件鏈路追蹤,日志記錄,統(tǒng)計(jì)函數(shù)耗時(shí) 修改函數(shù)返回結(jié)果的應(yīng)用場(chǎng)景
安裝
composer require xiaoyangguang/aop
使用
自定義切面 照著Xiaoyangguang\Aop\Examplex寫(xiě)
<?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文件
- 自定義切入類(lèi)需要實(shí)現(xiàn)Xiaoyangguang\Aop\AspectInterface接口并配置到以上aop配置文件中
- 最后啟動(dòng)服務(wù)。
效果
php start.php start
curl http://127.0.0.1:8787
此時(shí)控制臺(tái)打印前置和后置切面函數(shù)打印值
string(12) "beforeAdvice"
string(11) "afterAdvice"