Files
kiri-core/System/Error/LoggerAspect.php
T
as2252258@163.com db921d1b61 modify
2021-03-29 03:41:29 +08:00

58 lines
1.0 KiB
PHP

<?php
namespace Snowflake\Error;
use Snowflake\IAspect;
/**
* Class LoggerAspect
* @package Snowflake\Error
*/
class LoggerAspect implements IAspect
{
private string $className = '';
private string $methodName = '';
/**
* LoggerAspect constructor.
* @param array $handler
*/
public function __construct(public array $handler)
{
$this->className = get_class($this->handler[0]);
$this->methodName = $this->handler[1];
}
/**
* @return mixed|void
*/
public function invoke()
{
$startTime = microtime(true);
$data = call_user_func($this->handler, func_get_args());
$this->print_runtime($startTime);
if ($data === null) {
return;
}
return $data;
}
private function print_runtime($startTime)
{
$runTime = round(microtime(true) - $startTime, 6);
echo sprintf('run %s::%s use time %6f', $this->className, $this->methodName, $runTime);
echo PHP_EOL;
}
}