diff --git a/function.php b/function.php index d5361bac..4a8838c5 100644 --- a/function.php +++ b/function.php @@ -10,6 +10,8 @@ use Kiri\Error\StdoutLoggerInterface; use Kiri\Events\EventDispatch; use Kiri\Events\EventProvider; use Kiri\Exception\ConfigException; +use Psr\Container\ContainerExceptionInterface; +use Psr\Container\NotFoundExceptionInterface; use Swoole\Process; if (!function_exists('make')) { @@ -835,7 +837,7 @@ if (!function_exists('storage')) { } -if (!function_exists('event')) { +if (!function_exists('on')) { /** @@ -844,7 +846,7 @@ if (!function_exists('event')) { * @param bool $isAppend * @throws Exception */ - function event($name, $callback, bool $isAppend = TRUE) + function on($name, $callback, bool $isAppend = TRUE): void { $pro = di(EventProvider::class); $pro->on($name, $callback, 0); @@ -1199,6 +1201,23 @@ if (!function_exists('success')) { } } +if (!function_exists('event')) { + + + /** + * @param object $object + * @return void + * @throws ReflectionException + * @throws ContainerExceptionInterface + * @throws NotFoundExceptionInterface + */ + function event(object $object): void + { + Kiri::getDi()->get(EventDispatch::class)->dispatch($object); + } + +} + if (!function_exists('throwable')) { diff --git a/kiri-engine/Error/ErrorHandler.php b/kiri-engine/Error/ErrorHandler.php index 66a23c93..19cf0a56 100644 --- a/kiri-engine/Error/ErrorHandler.php +++ b/kiri-engine/Error/ErrorHandler.php @@ -65,11 +65,12 @@ class ErrorHandler extends Component implements ErrorInterface } set_error_handler($callback); } - - + + /** * @param array|Closure|null $callback * @return void + * @throws ReflectionException */ public function registerShutdownHandler(null|array|Closure $callback): void { @@ -102,7 +103,7 @@ class ErrorHandler extends Component implements ErrorInterface $message = array_shift($messages); - Kiri::getDi()->get(EventDispatch::class)->dispatch(new Kiri\Events\OnSystemError()); + event(new Kiri\Events\OnSystemError()); $this->sendError($message, $lastError['file'], $lastError['line']); } @@ -115,11 +116,11 @@ class ErrorHandler extends Component implements ErrorInterface * @throws NotFoundExceptionInterface * @throws Exception */ - public function exceptionHandler(\Throwable $exception) + public function exceptionHandler(\Throwable $exception): void { $this->category = 'exception'; - Kiri::getDi()->get(EventDispatch::class)->dispatch(new Kiri\Events\OnSystemError()); + event(new Kiri\Events\OnSystemError()); $this->sendError($exception->getMessage(), $exception->getFile(), $exception->getLine()); } @@ -143,9 +144,9 @@ class ErrorHandler extends Component implements ErrorInterface $data = Json::jsonFail($error[1], 500, $path); - \Kiri::getLogger()->error('On error handler', [$data]); + error('On error handler', [$data]); - Kiri::getDi()->get(EventDispatch::class)->dispatch(new Kiri\Events\OnSystemError()); + event(new Kiri\Events\OnSystemError()); throw new \ErrorException($error[1], $error[0], 1, $error[2], $error[3]); }