From 6401c81b520cf58da240b76d6504b568473de9a3 Mon Sep 17 00:00:00 2001 From: eeliu <27064129+eeliu@users.noreply.github.com> Date: Fri, 17 Dec 2021 17:55:26 +0800 Subject: [PATCH 1/3] for yii2 --- auto_pinpointed.php | 3 +- lib/Pinpoint/Common/ClassFile.php | 2 +- lib/Pinpoint/Common/PinpointDriver.php | 23 ++++++--- lib/Pinpoint/Common/PluginVisitor.php | 2 +- lib/Pinpoint/Common/{Util.php => Utils.php} | 29 +++++++++-- .../Common/VendorAdaptorClassLoader.php | 19 +++++-- .../Plugins/Yii2PerRequestPlugins.php | 49 +++++++++++++++++++ lib/Pinpoint/test/UtilTest.php | 20 ++++---- 8 files changed, 120 insertions(+), 27 deletions(-) rename lib/Pinpoint/Common/{Util.php => Utils.php} (79%) create mode 100644 lib/Pinpoint/Plugins/Yii2PerRequestPlugins.php diff --git a/auto_pinpointed.php b/auto_pinpointed.php index a8e1483..442901e 100644 --- a/auto_pinpointed.php +++ b/auto_pinpointed.php @@ -6,10 +6,11 @@ use Pinpoint\Plugins\PerRequestPlugins; define('CLASS_PREFIX','Proxied_'); -PinpointDriver::getInstance()->start(); if(defined('PP_REQ_PLUGINS') && class_exists(PP_REQ_PLUGINS)){ $plugins = PP_REQ_PLUGINS; $plugins::instance(); }else{ PerRequestPlugins::instance(); } + +PinpointDriver::getInstance()->start(); diff --git a/lib/Pinpoint/Common/ClassFile.php b/lib/Pinpoint/Common/ClassFile.php index 8051577..d700f0e 100644 --- a/lib/Pinpoint/Common/ClassFile.php +++ b/lib/Pinpoint/Common/ClassFile.php @@ -133,7 +133,7 @@ public function fileNodeDoneCB(&$node, $loaderName) $fullPath = AOP_CACHE_DIR.'/'.str_replace('\\','/',$loaderName).'.php'; $context= $this->_astPrinter->prettyPrintFile($node); RenderAopClass::getInstance()->insertMapping($loaderName,$fullPath); - Util::saveObj($context,$fullPath); + Utils::saveObj($context,$fullPath); } abstract function handleAfterTravers(&$nodes); diff --git a/lib/Pinpoint/Common/PinpointDriver.php b/lib/Pinpoint/Common/PinpointDriver.php index d2cdbac..f091e0e 100644 --- a/lib/Pinpoint/Common/PinpointDriver.php +++ b/lib/Pinpoint/Common/PinpointDriver.php @@ -45,7 +45,7 @@ final private function __construct() { } - public static function getAutoGenFiles() + private static function getAutoGenFiles() { $files = []; @@ -53,7 +53,7 @@ public static function getAutoGenFiles() { if(is_dir($dir)) { - Util::scanDir($dir,"/Plugin.php$/",$files); + Utils::scanDir($dir,"/Plugin.php$/",$files); } } @@ -65,9 +65,9 @@ public function start() RenderAopClass::getInstance(); /// checking the cached file exist, if exist load it - if(Util::checkCacheReady()) + if(Utils::checkCacheReady()) { - RenderAopClass::getInstance()->createFrom(Util::loadCachedClass()); + RenderAopClass::getInstance()->createFrom(Utils::loadCachedClass()); RenderAopClassLoader::start(); return ; } @@ -89,7 +89,7 @@ public function start() { foreach ($naming['appendFiles'] as $class) { - $fullPath = Util::findFile($class); + $fullPath = Utils::findFile($class); if(!$fullPath) continue; $visitor = new OriginFileVisitor(); @@ -103,7 +103,7 @@ public function start() { if(empty($class)) continue; - $fullPath = Util::findFile($class); + $fullPath = Utils::findFile($class); if(!$fullPath ) continue; $visitor = new OriginFileVisitor(); @@ -114,10 +114,17 @@ public function start() } } // save render aop class into index file - Util::saveCachedClass(RenderAopClass::getInstance()->getLoadeMap()); + Utils::saveCachedClass(RenderAopClass::getInstance()->getLoadeMap()); // enable RenderAop class loader RenderAopClassLoader::start(); } - + /** + * start /tail are the spl_autoload_functions checking order + * @param callable $start + * @param callable $tail + */ + public function addClassFinderHelper(callable $start, callable $tail){ + Utils::addLoaderPatch($start,$tail); + } } diff --git a/lib/Pinpoint/Common/PluginVisitor.php b/lib/Pinpoint/Common/PluginVisitor.php index bac553d..3e13c06 100644 --- a/lib/Pinpoint/Common/PluginVisitor.php +++ b/lib/Pinpoint/Common/PluginVisitor.php @@ -44,7 +44,7 @@ private function loadCommentFunc(&$node,$mode) { foreach( $node->getComments() as &$doc) { - $funArray = Util::parseUserFunc(trim($doc->getText())); + $funArray = Utils::parseUserFunc(trim($doc->getText())); foreach ($funArray as $func) { diff --git a/lib/Pinpoint/Common/Util.php b/lib/Pinpoint/Common/Utils.php similarity index 79% rename from lib/Pinpoint/Common/Util.php rename to lib/Pinpoint/Common/Utils.php index 5c6ba15..4201e19 100644 --- a/lib/Pinpoint/Common/Util.php +++ b/lib/Pinpoint/Common/Utils.php @@ -23,12 +23,19 @@ namespace Pinpoint\Common; -class Util +class Utils { const U_Method= 1; const U_Function= 2; const U_INDEX_FILE_PATH = AOP_CACHE_DIR.'__class_index_table'; + static private $loaderPatch =[null,null]; + + public static function addLoaderPatch(callable $start,callable $tail=null){ + static::$loaderPatch[0] = $start; + static::$loaderPatch[1] = $tail; + } + /** * locate a class (via VendorAdaptorClassLoader) * @param $class @@ -36,6 +43,13 @@ class Util */ public static function findFile($class):string { + if(is_callable(static::$loaderPatch[0])){ + $files = call_user_func(static::$loaderPatch[0],$class); + if ($files){ + return $files; + } + } + $splLoaders = spl_autoload_functions(); foreach ($splLoaders as &$loader) { @@ -44,8 +58,17 @@ public static function findFile($class):string if($address){ return realpath($address); } - }else{ - throw new \Exception("unknown loader"); + } + // keep peace with unknown loader +// else{ +// throw new \Exception("unknown loader"); +// } + } + + if(is_callable(static::$loaderPatch[1])){ + $files = call_user_func(static::$loaderPatch[1],$class); + if ($files){ + return $files; } } diff --git a/lib/Pinpoint/Common/VendorAdaptorClassLoader.php b/lib/Pinpoint/Common/VendorAdaptorClassLoader.php index 68ad424..caf3672 100644 --- a/lib/Pinpoint/Common/VendorAdaptorClassLoader.php +++ b/lib/Pinpoint/Common/VendorAdaptorClassLoader.php @@ -111,11 +111,24 @@ public static function enable() $loaders = spl_autoload_functions(); foreach ($loaders as &$loader) { if ( is_array($loader) && is_callable($loader) ) {// common ClassLoader style - + + try{ + // replace composer loader with aopclassLoader + $_loader = new self($loader); + }catch (Exception $e){ + /** + * if current loader not compatible, just ignore it! + * why? + * 1. pinpoint-php-aop only works on known framework! Exception will not expose to usr + * 2. Keep this loader, as it will handled its class. (We could write patch for this loader) + * 3. Pinpoint classloader is the highest priority + */ + continue; + } + // unregister composer loader spl_autoload_unregister($loader); - // replace composer loader with aopclassLoader - $_loader = new self($loader); + spl_autoload_register(array($_loader,'loadClass'),true,false); } } diff --git a/lib/Pinpoint/Plugins/Yii2PerRequestPlugins.php b/lib/Pinpoint/Plugins/Yii2PerRequestPlugins.php new file mode 100644 index 0000000..c6ce7f9 --- /dev/null +++ b/lib/Pinpoint/Plugins/Yii2PerRequestPlugins.php @@ -0,0 +1,49 @@ + Date: Mon, 20 Dec 2021 18:06:20 +0800 Subject: [PATCH 2/3] 1. yii2, db connection 2. aop library support "extend \PDO " style --- .../Common/GenProxiedClassFileHelper.php | 12 +++--- lib/Pinpoint/Common/NpCoderVisitor.php | 5 ++- lib/Pinpoint/Common/OriginFileVisitor.php | 1 - lib/Pinpoint/Common/PinpointDriver.php | 1 + .../AutoGen/GuzzleHttp/GuzzlePlugin.php | 4 +- .../AutoGen/MongoPlugin/MongoPlugin.php | 4 +- .../Plugins/AutoGen/Yii2/ConnectionPlugin.php | 41 +++++++++++++++++++ lib/Pinpoint/Plugins/Common/CommonPlugin.php | 2 +- .../Common/{Candy.php => PinTrace.php} | 2 +- lib/Pinpoint/Plugins/Common/Trace.php | 33 +++++++++++---- lib/Pinpoint/Plugins/Common/TraceHelper.php | 30 ++++++++++++++ .../Plugins/Sys/Memcached/MemAddPlugin.php | 4 +- .../Sys/Memcached/MemAddServerPlugin.php | 4 +- .../Sys/Memcached/MemAddServersPlugin.php | 4 +- .../Plugins/Sys/Memcached/MemGetPlugin.php | 4 +- lib/Pinpoint/Plugins/Sys/PDO/PDOExec.php | 4 +- .../Plugins/Sys/PDO/PDOGlueStatement.php | 4 +- .../Plugins/Sys/PDO/PreparePlugin.php | 4 +- .../Plugins/Sys/RdKafka/ProducePlugin.php | 4 +- .../Plugins/Sys/curl/CurlExecPlugin.php | 4 +- lib/Pinpoint/Plugins/Sys/curl/CurlUtil.php | 6 +-- .../Sys/mysqli/MysqliPreparePlugin.php | 4 +- .../Plugins/Sys/mysqli/MysqliQueryPlugin.php | 4 +- .../Plugins/Sys/mysqli/StmtExecutePlugin.php | 4 +- .../Plugins/Sys/phpredis/ConnectPlugin.php | 4 +- .../Plugins/Sys/phpredis/GetPlugin.php | 4 +- .../Plugins/Sys/phpredis/SetPlugin.php | 4 +- .../pinpoint => Cache/Pinpoint}/test/Foo.php | 20 ++++----- .../Pinpoint}/test/Proxied_TestClass.php | 2 +- .../test/Proxied_TestTrait.php | 0 .../Pinpoint}/test/TestClass.php | 4 +- .../{pinpoint => Pinpoint}/test/TestTrait.php | 2 +- lib/Pinpoint/test/ClassParseTest.php | 12 ++++-- .../Pinpoint}/test/Foo.php | 20 ++++----- .../Pinpoint}/test/Proxied_TestClass.php | 2 +- .../test/Proxied_TestTrait.php | 0 .../Pinpoint}/test/TestClass.php | 4 +- .../{pinpoint => Pinpoint}/test/TestTrait.php | 2 +- lib/Pinpoint/test/Foo.php | 2 +- 39 files changed, 185 insertions(+), 86 deletions(-) create mode 100644 lib/Pinpoint/Plugins/AutoGen/Yii2/ConnectionPlugin.php rename lib/Pinpoint/Plugins/Common/{Candy.php => PinTrace.php} (98%) create mode 100644 lib/Pinpoint/Plugins/Common/TraceHelper.php rename lib/Pinpoint/test/{Comparison/pinpoint => Cache/Pinpoint}/test/Foo.php (73%) rename lib/Pinpoint/test/{Comparison/pinpoint => Cache/Pinpoint}/test/Proxied_TestClass.php (97%) rename lib/Pinpoint/test/Cache/{pinpoint => Pinpoint}/test/Proxied_TestTrait.php (100%) rename lib/Pinpoint/test/{Comparison/pinpoint => Cache/Pinpoint}/test/TestClass.php (98%) rename lib/Pinpoint/test/Cache/{pinpoint => Pinpoint}/test/TestTrait.php (95%) rename lib/Pinpoint/test/{Cache/pinpoint => Comparison/Pinpoint}/test/Foo.php (73%) rename lib/Pinpoint/test/{Cache/pinpoint => Comparison/Pinpoint}/test/Proxied_TestClass.php (97%) rename lib/Pinpoint/test/Comparison/{pinpoint => Pinpoint}/test/Proxied_TestTrait.php (100%) rename lib/Pinpoint/test/{Cache/pinpoint => Comparison/Pinpoint}/test/TestClass.php (98%) rename lib/Pinpoint/test/Comparison/{pinpoint => Pinpoint}/test/TestTrait.php (95%) diff --git a/lib/Pinpoint/Common/GenProxiedClassFileHelper.php b/lib/Pinpoint/Common/GenProxiedClassFileHelper.php index a9547d1..c485d29 100644 --- a/lib/Pinpoint/Common/GenProxiedClassFileHelper.php +++ b/lib/Pinpoint/Common/GenProxiedClassFileHelper.php @@ -113,8 +113,8 @@ public function handleEnterNew_(&$node) assert($node instanceof Node\Expr\New_); $node->class = $this->renderClassName($node->class,$this->t_covertCls); return $node; - } + public function handleEnterClassConstFetch(&$node) { assert($node instanceof Node\Expr\ClassConstFetch); @@ -194,10 +194,12 @@ public function handleLeaveMethodNode(&$node) public function handleFullyQualifiedNode(&$node) { assert($node instanceof Node\Name\FullyQualified); - - $newNode = new Node\Name($node->toString()); - - return $newNode; + $name = $node->toString(); + if( isset($this->t_covertCls[$name]) ) { + return new Node\Name\FullyQualified($this->t_covertCls[$name]); + }else{ + return $node; + } } public function addRequiredFile($fullName) diff --git a/lib/Pinpoint/Common/NpCoderVisitor.php b/lib/Pinpoint/Common/NpCoderVisitor.php index e971526..4e989f6 100644 --- a/lib/Pinpoint/Common/NpCoderVisitor.php +++ b/lib/Pinpoint/Common/NpCoderVisitor.php @@ -77,7 +77,10 @@ public function enterNode(Node $node) } elseif ($node instanceof Node\Expr\ClassConstFetch){ return $this->proxiedClassFile->handleEnterClassConstFetch($node); - }elseif ($node instanceof Node\Expr\New_){ + } + elseif ($node instanceof Node\Name\FullyQualified) { + return $this->proxiedClassFile->handleFullyQualifiedNode($node); + }elseif ($node instanceof Node\Expr\New_) { return $this->proxiedClassFile->handleEnterNew_($node); }elseif ($node instanceof Node\Expr\FuncCall){ return $this->proxiedClassFile->handleEnterFuncCall($node); diff --git a/lib/Pinpoint/Common/OriginFileVisitor.php b/lib/Pinpoint/Common/OriginFileVisitor.php index 5863d11..b63922c 100644 --- a/lib/Pinpoint/Common/OriginFileVisitor.php +++ b/lib/Pinpoint/Common/OriginFileVisitor.php @@ -41,7 +41,6 @@ public function runAllVisitor(string $fullPath,array $aopFuncInfo=[], array $nam $code = file_get_contents($fullPath); $stmts = $this->phpFileParser->parse($code); $this->traverser->traverse($stmts); - } private function getVisitor(string& $fullPath,array& $aopFuncInfo=[], array& $naming=[]) diff --git a/lib/Pinpoint/Common/PinpointDriver.php b/lib/Pinpoint/Common/PinpointDriver.php index f091e0e..bf3b0d6 100644 --- a/lib/Pinpoint/Common/PinpointDriver.php +++ b/lib/Pinpoint/Common/PinpointDriver.php @@ -71,6 +71,7 @@ public function start() RenderAopClassLoader::start(); return ; } + VendorAdaptorClassLoader::enable(); $pluFiles = static::getAutoGenFiles(); foreach ($pluFiles as $file) diff --git a/lib/Pinpoint/Plugins/AutoGen/GuzzleHttp/GuzzlePlugin.php b/lib/Pinpoint/Plugins/AutoGen/GuzzleHttp/GuzzlePlugin.php index 80f04e7..9edd7d1 100644 --- a/lib/Pinpoint/Plugins/AutoGen/GuzzleHttp/GuzzlePlugin.php +++ b/lib/Pinpoint/Plugins/AutoGen/GuzzleHttp/GuzzlePlugin.php @@ -16,11 +16,11 @@ ******************************************************************************/ namespace Pinpoint\Plugins\AutoGen\GuzzleHttp; -use Pinpoint\Plugins\Common\Candy; +use Pinpoint\Plugins\Common\PinTrace; use Pinpoint\Plugins\Sys\curl\CurlUtil; ///@hook:GuzzleHttp\Client::request -class GuzzlePlugin extends Candy +class GuzzlePlugin extends PinTrace { ///@hook:GuzzleHttp\Psr7\Request::__construct function onBefore() diff --git a/lib/Pinpoint/Plugins/AutoGen/MongoPlugin/MongoPlugin.php b/lib/Pinpoint/Plugins/AutoGen/MongoPlugin/MongoPlugin.php index 930f6e8..02f5595 100644 --- a/lib/Pinpoint/Plugins/AutoGen/MongoPlugin/MongoPlugin.php +++ b/lib/Pinpoint/Plugins/AutoGen/MongoPlugin/MongoPlugin.php @@ -17,9 +17,9 @@ namespace Pinpoint\Plugins; -use Pinpoint\Plugins\Common\Candy; +use Pinpoint\Plugins\Common\PinTrace; -class MongoPlugin extends Candy +class MongoPlugin extends PinTrace { /** diff --git a/lib/Pinpoint/Plugins/AutoGen/Yii2/ConnectionPlugin.php b/lib/Pinpoint/Plugins/AutoGen/Yii2/ConnectionPlugin.php new file mode 100644 index 0000000..f2cb344 --- /dev/null +++ b/lib/Pinpoint/Plugins/AutoGen/Yii2/ConnectionPlugin.php @@ -0,0 +1,41 @@ +who; + $dsn = $con->dsn; + if (strncmp('sqlite:@', $dsn, 8) === 0) { + $dsn = 'sqlite:' . Yii::getAlias(substr($dsn, 7)); + } + $ret = new PDO($dsn, $con->username, $con->password, $con->attributes); + } + } + +} \ No newline at end of file diff --git a/lib/Pinpoint/Plugins/Common/CommonPlugin.php b/lib/Pinpoint/Plugins/Common/CommonPlugin.php index 1d79c14..1e7f563 100644 --- a/lib/Pinpoint/Plugins/Common/CommonPlugin.php +++ b/lib/Pinpoint/Plugins/Common/CommonPlugin.php @@ -17,7 +17,7 @@ namespace Pinpoint\Plugins\Common; -class CommonPlugin extends Candy +class CommonPlugin extends PinTrace { ///@hook:app\DBcontrol::connectDb public function onBefore(){ diff --git a/lib/Pinpoint/Plugins/Common/Candy.php b/lib/Pinpoint/Plugins/Common/PinTrace.php similarity index 98% rename from lib/Pinpoint/Plugins/Common/Candy.php rename to lib/Pinpoint/Plugins/Common/PinTrace.php index 3125ea2..0ec2d02 100644 --- a/lib/Pinpoint/Plugins/Common/Candy.php +++ b/lib/Pinpoint/Plugins/Common/PinTrace.php @@ -26,7 +26,7 @@ namespace Pinpoint\Plugins\Common; require_once "PluginsDefines.php"; -abstract class Candy +abstract class PinTrace { protected $apId; protected $who; diff --git a/lib/Pinpoint/Plugins/Common/Trace.php b/lib/Pinpoint/Plugins/Common/Trace.php index 9c45783..e02080b 100644 --- a/lib/Pinpoint/Plugins/Common/Trace.php +++ b/lib/Pinpoint/Plugins/Common/Trace.php @@ -1,4 +1,4 @@ -apId = $apId; + $this->who = $who; + $this->args = &$args; } + public function __destruct(){} + + function onBefore(){} + + function onEnd(&$ret){} + + public function onException($e) {} } \ No newline at end of file diff --git a/lib/Pinpoint/Plugins/Common/TraceHelper.php b/lib/Pinpoint/Plugins/Common/TraceHelper.php new file mode 100644 index 0000000..530b641 --- /dev/null +++ b/lib/Pinpoint/Plugins/Common/TraceHelper.php @@ -0,0 +1,30 @@ +"s0"]; } - $nsid = Trace::generateSpanID(); + $nsid = TraceHelper::generateSpanID(); $header = [ 'Pinpoint-Sampled'=>'s1', 'Pinpoint-Flags'=>'0', diff --git a/lib/Pinpoint/Plugins/Sys/mysqli/MysqliPreparePlugin.php b/lib/Pinpoint/Plugins/Sys/mysqli/MysqliPreparePlugin.php index 78d928e..c6789fd 100644 --- a/lib/Pinpoint/Plugins/Sys/mysqli/MysqliPreparePlugin.php +++ b/lib/Pinpoint/Plugins/Sys/mysqli/MysqliPreparePlugin.php @@ -17,9 +17,9 @@ namespace Pinpoint\Plugins\Sys\mysqli; -use Pinpoint\Plugins\Common\Candy; +use Pinpoint\Plugins\Common\PinTrace; -class MysqliPreparePlugin extends Candy +class MysqliPreparePlugin extends PinTrace { function onBefore() { diff --git a/lib/Pinpoint/Plugins/Sys/mysqli/MysqliQueryPlugin.php b/lib/Pinpoint/Plugins/Sys/mysqli/MysqliQueryPlugin.php index 621f655..c509e96 100644 --- a/lib/Pinpoint/Plugins/Sys/mysqli/MysqliQueryPlugin.php +++ b/lib/Pinpoint/Plugins/Sys/mysqli/MysqliQueryPlugin.php @@ -17,9 +17,9 @@ namespace Pinpoint\Plugins\Sys\mysqli; -use Pinpoint\Plugins\Common\Candy; +use Pinpoint\Plugins\Common\PinTrace; -class MysqliQueryPlugin extends Candy +class MysqliQueryPlugin extends PinTrace { function onBefore() diff --git a/lib/Pinpoint/Plugins/Sys/mysqli/StmtExecutePlugin.php b/lib/Pinpoint/Plugins/Sys/mysqli/StmtExecutePlugin.php index 5f40243..72d8e04 100644 --- a/lib/Pinpoint/Plugins/Sys/mysqli/StmtExecutePlugin.php +++ b/lib/Pinpoint/Plugins/Sys/mysqli/StmtExecutePlugin.php @@ -8,14 +8,14 @@ namespace Pinpoint\Plugins\Sys\mysqli; -use Pinpoint\Plugins\Common\Candy; +use Pinpoint\Plugins\Common\PinTrace; /** * Class StmtExecutePlugin * record the function execute env * @package Plugins\Sys\mysqli */ -class StmtExecutePlugin extends Candy +class StmtExecutePlugin extends PinTrace { function onBefore() diff --git a/lib/Pinpoint/Plugins/Sys/phpredis/ConnectPlugin.php b/lib/Pinpoint/Plugins/Sys/phpredis/ConnectPlugin.php index 1d7b72e..ec1b1ff 100644 --- a/lib/Pinpoint/Plugins/Sys/phpredis/ConnectPlugin.php +++ b/lib/Pinpoint/Plugins/Sys/phpredis/ConnectPlugin.php @@ -8,9 +8,9 @@ namespace Pinpoint\Plugins\Sys\phpredis; -use Pinpoint\Plugins\Common\Candy; +use Pinpoint\Plugins\Common\PinTrace; -class ConnectPlugin extends Candy +class ConnectPlugin extends PinTrace { function onBefore() diff --git a/lib/Pinpoint/Plugins/Sys/phpredis/GetPlugin.php b/lib/Pinpoint/Plugins/Sys/phpredis/GetPlugin.php index f88d66c..0d8ffd8 100644 --- a/lib/Pinpoint/Plugins/Sys/phpredis/GetPlugin.php +++ b/lib/Pinpoint/Plugins/Sys/phpredis/GetPlugin.php @@ -8,9 +8,9 @@ namespace Pinpoint\Plugins\Sys\phpredis; -use Pinpoint\Plugins\Common\Candy; +use Pinpoint\Plugins\Common\PinTrace; -class GetPlugin extends Candy +class GetPlugin extends PinTrace { function onBefore() diff --git a/lib/Pinpoint/Plugins/Sys/phpredis/SetPlugin.php b/lib/Pinpoint/Plugins/Sys/phpredis/SetPlugin.php index faef57d..11b6a10 100644 --- a/lib/Pinpoint/Plugins/Sys/phpredis/SetPlugin.php +++ b/lib/Pinpoint/Plugins/Sys/phpredis/SetPlugin.php @@ -8,9 +8,9 @@ namespace Pinpoint\Plugins\Sys\phpredis; -use Pinpoint\Plugins\Common\Candy; +use Pinpoint\Plugins\Common\PinTrace; -class SetPlugin extends Candy +class SetPlugin extends PinTrace { function onBefore() diff --git a/lib/Pinpoint/test/Comparison/pinpoint/test/Foo.php b/lib/Pinpoint/test/Cache/Pinpoint/test/Foo.php similarity index 73% rename from lib/Pinpoint/test/Comparison/pinpoint/test/Foo.php rename to lib/Pinpoint/test/Cache/Pinpoint/test/Foo.php index 5377f18..f9804f4 100644 --- a/lib/Pinpoint/test/Comparison/pinpoint/test/Foo.php +++ b/lib/Pinpoint/test/Cache/Pinpoint/test/Foo.php @@ -2,18 +2,18 @@ namespace Pinpoint\test; -use Pinpoint\Plugins\app\curl_init_01; -use Pinpoint\Plugins\test\curl; -use Pinpoint\Plugins\test\type1; -use Pinpoint\Plugins\type03; +use plugins\app\curl_init_01; +use plugins\test\curl; +use plugins\test\type1; +use plugins\type03; use function plugins\app\foo\curl_02 as curl_02; use function plugins\app\foo\curl_03; -use Pinpoint\Plugins\PDO; -use Pinpoint\Plugins\PDO as TPDO; -use Pinpoint\Plugins\A\B; +use plugins\PDO; +use plugins\PDO as TPDO; +use plugins\A\B; use App\A\LONG\NAME as ShortName; use A\B\C; -class Foo +class Foo extends \plugins\PDO { public function __construct($str, type1 $one, \test\type2 $two, type03 $three) { @@ -22,9 +22,9 @@ public function __construct($str, type1 $one, \test\type2 $two, type03 $three) $curl_01 = new curl_init_01(); $curl_02 = new \plugins\app\curl_init_01(); $a = new \plugins\app\ClassA(); - print_r('pinpoint\\test\\Foo'); + print_r('Pinpoint\\test\\Foo'); print_r(27); - print_r('pinpoint\\test\\Foo::__construct'); + print_r('Pinpoint\\test\\Foo::__construct'); print_r(23); } public function testPDO() diff --git a/lib/Pinpoint/test/Comparison/pinpoint/test/Proxied_TestClass.php b/lib/Pinpoint/test/Cache/Pinpoint/test/Proxied_TestClass.php similarity index 97% rename from lib/Pinpoint/test/Comparison/pinpoint/test/Proxied_TestClass.php rename to lib/Pinpoint/test/Cache/Pinpoint/test/Proxied_TestClass.php index 4a291d3..29534e4 100644 --- a/lib/Pinpoint/test/Comparison/pinpoint/test/Proxied_TestClass.php +++ b/lib/Pinpoint/test/Cache/Pinpoint/test/Proxied_TestClass.php @@ -13,7 +13,7 @@ public function __construct($a, $b, $c) public function foo($a, $b, $v, $d) : array { echo \plugins\A\B\date("y-m-d"); - echo 'pinpoint\\test\\TestClass::foo'; + echo 'Pinpoint\\test\\TestClass::foo'; echo 20; return [$a, $b, $v, $d]; } diff --git a/lib/Pinpoint/test/Cache/pinpoint/test/Proxied_TestTrait.php b/lib/Pinpoint/test/Cache/Pinpoint/test/Proxied_TestTrait.php similarity index 100% rename from lib/Pinpoint/test/Cache/pinpoint/test/Proxied_TestTrait.php rename to lib/Pinpoint/test/Cache/Pinpoint/test/Proxied_TestTrait.php diff --git a/lib/Pinpoint/test/Comparison/pinpoint/test/TestClass.php b/lib/Pinpoint/test/Cache/Pinpoint/test/TestClass.php similarity index 98% rename from lib/Pinpoint/test/Comparison/pinpoint/test/TestClass.php rename to lib/Pinpoint/test/Cache/Pinpoint/test/TestClass.php index 1bf6c4a..7b459d0 100644 --- a/lib/Pinpoint/test/Comparison/pinpoint/test/TestClass.php +++ b/lib/Pinpoint/test/Cache/Pinpoint/test/TestClass.php @@ -7,8 +7,8 @@ use App\Class3 as FooClass; use App\Class4 as FooClass4; use Pinpoint\test\Proxied_TestClass; -use Pinpoint\test\traitTestPlugin; -use Pinpoint\test\burden\depress\herb\e\e\f\longNp\victim; +use pinpoint\test\traitTestPlugin; +use pinpoint\test\burden\depress\herb\e\e\f\longNp\victim; use \over; abstract class TestClass extends Proxied_TestClass { diff --git a/lib/Pinpoint/test/Cache/pinpoint/test/TestTrait.php b/lib/Pinpoint/test/Cache/Pinpoint/test/TestTrait.php similarity index 95% rename from lib/Pinpoint/test/Cache/pinpoint/test/TestTrait.php rename to lib/Pinpoint/test/Cache/Pinpoint/test/TestTrait.php index 3aefa1c..0c93f7a 100644 --- a/lib/Pinpoint/test/Cache/pinpoint/test/TestTrait.php +++ b/lib/Pinpoint/test/Cache/Pinpoint/test/TestTrait.php @@ -2,7 +2,7 @@ namespace Pinpoint\test; -use Pinpoint\test\traitTestPlugin; +use pinpoint\test\traitTestPlugin; trait TestTrait { use Proxied_TestTrait { diff --git a/lib/Pinpoint/test/ClassParseTest.php b/lib/Pinpoint/test/ClassParseTest.php index b5ff480..4f89fc1 100644 --- a/lib/Pinpoint/test/ClassParseTest.php +++ b/lib/Pinpoint/test/ClassParseTest.php @@ -2,10 +2,10 @@ namespace Pinpoint\test; require_once 'bootstrap.php'; -use Pinpoint\Common\OriginFileVisitor; use PHPUnit\Framework\TestCase; -use Pinpoint\Common\PinpointDriver; +use Pinpoint\Common\OriginFileVisitor; use Pinpoint\Common\NamingConf; +use Pinpoint\Common\Utils; use Pinpoint\Common\RenderAopClass; define('AOP_CACHE_DIR',__DIR__.'/Cache/'); @@ -73,7 +73,9 @@ public function testTrait() foreach ( RenderAopClass::getInstance()->getLoadeMap() as $class => $location) { $exp = str_replace('Cache','Comparison',$location); - self::assertFileEquals($exp,$location); + self::assertFileExists($exp); + self::assertFileExists($location); + self::assertFileEquals($exp,$location,"$exp!=$location"); } } @@ -102,6 +104,8 @@ public function testClass() foreach ( RenderAopClass::getInstance()->getLoadeMap() as $class => $location) { $exp = str_replace('Cache','Comparison',$location); + self::assertFileExists($exp); + self::assertFileExists($location); self::assertFileEquals($exp,$location); } @@ -115,6 +119,8 @@ public function testNamingReplace() foreach ( RenderAopClass::getInstance()->getLoadeMap() as $class => $location) { $exp = str_replace('Cache','Comparison',$location); + self::assertFileExists($location); + self::assertFileExists($exp); self::assertFileEquals($exp,$location); } } diff --git a/lib/Pinpoint/test/Cache/pinpoint/test/Foo.php b/lib/Pinpoint/test/Comparison/Pinpoint/test/Foo.php similarity index 73% rename from lib/Pinpoint/test/Cache/pinpoint/test/Foo.php rename to lib/Pinpoint/test/Comparison/Pinpoint/test/Foo.php index 5377f18..f9804f4 100644 --- a/lib/Pinpoint/test/Cache/pinpoint/test/Foo.php +++ b/lib/Pinpoint/test/Comparison/Pinpoint/test/Foo.php @@ -2,18 +2,18 @@ namespace Pinpoint\test; -use Pinpoint\Plugins\app\curl_init_01; -use Pinpoint\Plugins\test\curl; -use Pinpoint\Plugins\test\type1; -use Pinpoint\Plugins\type03; +use plugins\app\curl_init_01; +use plugins\test\curl; +use plugins\test\type1; +use plugins\type03; use function plugins\app\foo\curl_02 as curl_02; use function plugins\app\foo\curl_03; -use Pinpoint\Plugins\PDO; -use Pinpoint\Plugins\PDO as TPDO; -use Pinpoint\Plugins\A\B; +use plugins\PDO; +use plugins\PDO as TPDO; +use plugins\A\B; use App\A\LONG\NAME as ShortName; use A\B\C; -class Foo +class Foo extends \plugins\PDO { public function __construct($str, type1 $one, \test\type2 $two, type03 $three) { @@ -22,9 +22,9 @@ public function __construct($str, type1 $one, \test\type2 $two, type03 $three) $curl_01 = new curl_init_01(); $curl_02 = new \plugins\app\curl_init_01(); $a = new \plugins\app\ClassA(); - print_r('pinpoint\\test\\Foo'); + print_r('Pinpoint\\test\\Foo'); print_r(27); - print_r('pinpoint\\test\\Foo::__construct'); + print_r('Pinpoint\\test\\Foo::__construct'); print_r(23); } public function testPDO() diff --git a/lib/Pinpoint/test/Cache/pinpoint/test/Proxied_TestClass.php b/lib/Pinpoint/test/Comparison/Pinpoint/test/Proxied_TestClass.php similarity index 97% rename from lib/Pinpoint/test/Cache/pinpoint/test/Proxied_TestClass.php rename to lib/Pinpoint/test/Comparison/Pinpoint/test/Proxied_TestClass.php index 4a291d3..29534e4 100644 --- a/lib/Pinpoint/test/Cache/pinpoint/test/Proxied_TestClass.php +++ b/lib/Pinpoint/test/Comparison/Pinpoint/test/Proxied_TestClass.php @@ -13,7 +13,7 @@ public function __construct($a, $b, $c) public function foo($a, $b, $v, $d) : array { echo \plugins\A\B\date("y-m-d"); - echo 'pinpoint\\test\\TestClass::foo'; + echo 'Pinpoint\\test\\TestClass::foo'; echo 20; return [$a, $b, $v, $d]; } diff --git a/lib/Pinpoint/test/Comparison/pinpoint/test/Proxied_TestTrait.php b/lib/Pinpoint/test/Comparison/Pinpoint/test/Proxied_TestTrait.php similarity index 100% rename from lib/Pinpoint/test/Comparison/pinpoint/test/Proxied_TestTrait.php rename to lib/Pinpoint/test/Comparison/Pinpoint/test/Proxied_TestTrait.php diff --git a/lib/Pinpoint/test/Cache/pinpoint/test/TestClass.php b/lib/Pinpoint/test/Comparison/Pinpoint/test/TestClass.php similarity index 98% rename from lib/Pinpoint/test/Cache/pinpoint/test/TestClass.php rename to lib/Pinpoint/test/Comparison/Pinpoint/test/TestClass.php index 1bf6c4a..7b459d0 100644 --- a/lib/Pinpoint/test/Cache/pinpoint/test/TestClass.php +++ b/lib/Pinpoint/test/Comparison/Pinpoint/test/TestClass.php @@ -7,8 +7,8 @@ use App\Class3 as FooClass; use App\Class4 as FooClass4; use Pinpoint\test\Proxied_TestClass; -use Pinpoint\test\traitTestPlugin; -use Pinpoint\test\burden\depress\herb\e\e\f\longNp\victim; +use pinpoint\test\traitTestPlugin; +use pinpoint\test\burden\depress\herb\e\e\f\longNp\victim; use \over; abstract class TestClass extends Proxied_TestClass { diff --git a/lib/Pinpoint/test/Comparison/pinpoint/test/TestTrait.php b/lib/Pinpoint/test/Comparison/Pinpoint/test/TestTrait.php similarity index 95% rename from lib/Pinpoint/test/Comparison/pinpoint/test/TestTrait.php rename to lib/Pinpoint/test/Comparison/Pinpoint/test/TestTrait.php index 3aefa1c..0c93f7a 100644 --- a/lib/Pinpoint/test/Comparison/pinpoint/test/TestTrait.php +++ b/lib/Pinpoint/test/Comparison/Pinpoint/test/TestTrait.php @@ -2,7 +2,7 @@ namespace Pinpoint\test; -use Pinpoint\test\traitTestPlugin; +use pinpoint\test\traitTestPlugin; trait TestTrait { use Proxied_TestTrait { diff --git a/lib/Pinpoint/test/Foo.php b/lib/Pinpoint/test/Foo.php index 5f6db2a..f7b6005 100644 --- a/lib/Pinpoint/test/Foo.php +++ b/lib/Pinpoint/test/Foo.php @@ -14,7 +14,7 @@ use A\B\C; -class Foo +class Foo extends \PDO { public function __construct($str,type1 $one,\test\type2 $two, type03 $three) { From a837190639d8ebf70e4746c602ba5aea52e50e80 Mon Sep 17 00:00:00 2001 From: eeliu <27064129+eeliu@users.noreply.github.com> Date: Mon, 20 Dec 2021 18:19:02 +0800 Subject: [PATCH 3/3] ci is failed --- .github/workflows/main.yml | 2 +- PHPUnit.xml | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index cd969ab..e1f2cf7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -17,4 +17,4 @@ jobs: tools: composer:v2 - run: | composer install --prefer-dist - php vendor/bin/phpunit --configuration PHPUnit.xml --testsuit pinpoint --testdox \ No newline at end of file + vendor/bin/phpunit --configuration PHPUnit.xml --testsuit pinpoint --testdox \ No newline at end of file diff --git a/PHPUnit.xml b/PHPUnit.xml index 1d6fe94..b566cab 100644 --- a/PHPUnit.xml +++ b/PHPUnit.xml @@ -7,11 +7,10 @@ convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" - stopOnFailure="false" - syntaxCheck="false"> + stopOnFailure="true"> - lib/pinpoint/test + lib/Pinpoint/test