正在显示
4 个修改的文件
包含
32 行增加
和
15 行删除
| @@ -16,7 +16,10 @@ | @@ -16,7 +16,10 @@ | ||
| 16 | "autoload-dev": { | 16 | "autoload-dev": { |
| 17 | "psr-4": { | 17 | "psr-4": { |
| 18 | "Lackoxygen\\ExceptionPush\\Tests\\": "tests/" | 18 | "Lackoxygen\\ExceptionPush\\Tests\\": "tests/" |
| 19 | - } | 19 | + }, |
| 20 | + "files": [ | ||
| 21 | + "src/Helper.php" | ||
| 22 | + ] | ||
| 20 | }, | 23 | }, |
| 21 | "require": { | 24 | "require": { |
| 22 | "php": ">=7.4", | 25 | "php": ">=7.4", |
| @@ -12,13 +12,7 @@ class Dispatcher implements CallbackInterface | @@ -12,13 +12,7 @@ class Dispatcher implements CallbackInterface | ||
| 12 | */ | 12 | */ |
| 13 | public function config(): ?\Closure | 13 | public function config(): ?\Closure |
| 14 | { | 14 | { |
| 15 | - $dispatcher = ExceptionPush::config('callbacks.dispatcher'); | ||
| 16 | - | ||
| 17 | - if ($dispatcher instanceof \Closure) { | ||
| 18 | - return $dispatcher; | ||
| 19 | - } | ||
| 20 | - | ||
| 21 | - return null; | 15 | + return closure(ExceptionPush::config('callbacks.dispatcher')); |
| 22 | } | 16 | } |
| 23 | 17 | ||
| 24 | /** | 18 | /** |
| @@ -30,13 +30,7 @@ class Formatter implements CallbackInterface | @@ -30,13 +30,7 @@ class Formatter implements CallbackInterface | ||
| 30 | */ | 30 | */ |
| 31 | public function config(): ?\Closure | 31 | public function config(): ?\Closure |
| 32 | { | 32 | { |
| 33 | - $formatter = ExceptionPush::config('callbacks.formatter'); | ||
| 34 | - | ||
| 35 | - if ($formatter instanceof \Closure) { | ||
| 36 | - return $formatter; | ||
| 37 | - } | ||
| 38 | - | ||
| 39 | - return null; | 33 | + return closure(ExceptionPush::config('callbacks.formatter')); |
| 40 | } | 34 | } |
| 41 | 35 | ||
| 42 | 36 |
src/Helper.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace Lackoxygen\ExceptionPush; | ||
| 4 | + | ||
| 5 | +if (!function_exists('closure')) { | ||
| 6 | + function closure($closure): ?\Closure | ||
| 7 | + { | ||
| 8 | + if (is_array($closure) && 2 === count($closure)) { | ||
| 9 | + [$class, $method] = $closure; | ||
| 10 | + | ||
| 11 | + return function () use ($class, $method) { | ||
| 12 | + $handler = new $class; | ||
| 13 | + | ||
| 14 | + return call_user_func_array([$handler, $method], ...func_get_args()); | ||
| 15 | + }; | ||
| 16 | + } | ||
| 17 | + | ||
| 18 | + if (is_string($closure)) { | ||
| 19 | + return function () use ($closure) { | ||
| 20 | + return call_user_func($closure, ...func_get_args()); | ||
| 21 | + }; | ||
| 22 | + } | ||
| 23 | + | ||
| 24 | + return $closure instanceof \Closure ? $closure : null; | ||
| 25 | + } | ||
| 26 | +} |
-
请 注册 或 登录 后发表评论