Files
kiri-core/System/Error/LoggerAspect.php
T

54 lines
842 B
PHP
Raw Normal View History

2021-03-29 03:09:55 +08:00
<?php
2021-08-11 01:04:57 +08:00
namespace Kiri\Error;
2021-03-29 03:09:55 +08:00
2021-08-11 01:04:57 +08:00
use Kiri\IAspect;
2021-03-29 03:09:55 +08:00
/**
* Class LoggerAspect
2021-08-11 01:04:57 +08:00
* @package Kiri\Error
2021-03-29 03:09:55 +08:00
*/
class LoggerAspect implements IAspect
{
2021-07-27 17:27:56 +08:00
private string $className = '';
private string $methodName = '';
2021-03-29 03:09:55 +08:00
2021-03-29 16:17:22 +08:00
/**
2021-07-27 17:27:56 +08:00
* @param mixed $handler
2021-08-02 18:12:32 +08:00
* @param array $params
2021-03-29 16:17:22 +08:00
* @return mixed
*/
2021-08-02 18:12:32 +08:00
public function invoke(mixed $handler, array $params = []): mixed
2021-07-27 17:27:56 +08:00
{
$startTime = microtime(true);
2021-03-29 03:09:55 +08:00
2021-08-02 18:12:32 +08:00
$data = call_user_func($handler, ...$params);
2021-03-29 16:17:22 +08:00
2021-07-27 17:27:56 +08:00
$this->print_runtime($handler, $startTime);
2021-03-29 03:09:55 +08:00
2021-07-27 17:27:56 +08:00
return $data;
}
2021-03-29 03:09:55 +08:00
2021-04-23 03:12:00 +08:00
2021-07-27 17:27:56 +08:00
/**
* @param $handler
* @param $startTime
*/
private function print_runtime($handler, $startTime)
{
2021-08-03 02:43:40 +08:00
$className = $handler[0]::class;
$methodName = $handler[1];
2021-07-27 17:27:56 +08:00
$runTime = round(microtime(true) - $startTime, 6);
echo sprintf('run %s::%s use time %6f', $className, $methodName, $runTime);
echo PHP_EOL;
}
2021-03-29 03:09:55 +08:00
}