PluginProbe
WPIDE – File Manager & Code Editor / 3.5.9
WPIDE – File Manager & Code Editor v3.5.9
3.5.9 3.5.8 3.5.7 2.0.14 2.0.15 2.0.16 2.0.2 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1 2.2 2.3 2.3.1 2.3.2 2.4.0 2.5 2.6 3.0 3.1 3.2 3.3 All 55 releases
← All changes | vendor/php-di/invoker/src/Reflection/CallableReflection.php +17 -22 3.23.5.9 View file →
@@ -1,57 +1,52 @@
1 -<?php
1 +<?php declare(strict_types=1);
2 2
3 3 namespace Invoker\Reflection;
4 4
5 +use Closure;
5 6 use Invoker\Exception\NotCallableException;
7 +use ReflectionException;
8 +use ReflectionFunction;
9 +use ReflectionFunctionAbstract;
10 +use ReflectionMethod;
6 11
7 12 /**
8 - * Create a reflection object from a callable.
13 + * Create a reflection object from a callable or a callable-like.
9 14 *
10 - * @author Matthieu Napoli <matthieu@mnapoli.fr>
15 + * @internal
11 16 */
12 17 class CallableReflection
13 18 {
14 19 /**
15 - * @param callable $callable
16 - *
17 - * @return \ReflectionFunctionAbstract
18 - *
19 - * @throws NotCallableException
20 - *
21 - * TODO Use the `callable` type-hint once support for PHP 5.4 and up.
20 + * @param callable|array|string $callable Can be a callable or a callable-like.
21 + * @throws NotCallableException|ReflectionException
22 22 */
23 - public static function create($callable)
23 + public static function create($callable): ReflectionFunctionAbstract
24 24 {
25 25 // Closure
26 - if ($callable instanceof \Closure) {
27 - return new \ReflectionFunction($callable);
26 + if ($callable instanceof Closure) {
27 + return new ReflectionFunction($callable);
28 28 }
29 29
30 30 // Array callable
31 31 if (is_array($callable)) {
32 - list($class, $method) = $callable;
32 + [$class, $method] = $callable;
33 33
34 34 if (! method_exists($class, $method)) {
35 35 throw NotCallableException::fromInvalidCallable($callable);
36 36 }
37 37
38 - return new \ReflectionMethod($class, $method);
38 + return new ReflectionMethod($class, $method);
39 39 }
40 40
41 41 // Callable object (i.e. implementing __invoke())
42 42 if (is_object($callable) && method_exists($callable, '__invoke')) {
43 - return new \ReflectionMethod($callable, '__invoke');
43 + return new ReflectionMethod($callable, '__invoke');
44 44 }
45 45
46 - // Callable class (i.e. implementing __invoke())
47 - if (is_string($callable) && class_exists($callable) && method_exists($callable, '__invoke')) {
48 - return new \ReflectionMethod($callable, '__invoke');
49 - }
50 -
51 46 // Standard function
52 47 if (is_string($callable) && function_exists($callable)) {
53 - return new \ReflectionFunction($callable);
48 + return new ReflectionFunction($callable);
54 49 }
55 50
56 51 throw new NotCallableException(sprintf(
57 52 '%s is not a callable',