PluginProbe ʕ •ᴥ•ʔ
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode / 3.10.1
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode v3.10.1
4.7.2 4.7.1 trunk 2.3.0 2.4.0 2.4.1 2.4.2 2.5.0 3.0.0 3.0.1 3.1.0 3.10.0 3.10.1 3.11.1 3.11.2 3.11.3 3.2.0 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.5 3.6.6 3.7.0 3.7.1 3.8.0 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.2.0 4.2.1 4.2.10 4.2.11 4.2.12 4.2.13 4.2.14 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.3.10 4.3.11 4.3.12 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.3.7.1 4.3.8 4.3.9 4.3.9.1 4.4.0 4.4.1 4.4.2 4.5.0 4.5.1 4.5.10 4.5.11 4.5.2 4.5.3 4.5.4 4.5.5 4.5.6 4.5.7 4.5.8 4.5.9 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.6.6 4.6.7 4.7.0
cookiebot / addons / inc / Dependencies / DI / Reflection / CallableReflectionFactory.php
cookiebot / addons / inc / Dependencies / DI / Reflection Last commit date
CallableReflectionFactory.php 5 years ago
CallableReflectionFactory.php
52 lines
1 <?php
2 /**
3 * PHP-DI
4 *
5 * @link http://php-di.org/
6 * @copyright Matthieu Napoli (http://mnapoli.fr/)
7 * @license http://www.opensource.org/licenses/mit-license.php MIT (see the LICENSE file)
8 */
9
10 namespace Cybot\Dependencies\DI\Reflection;
11
12 /**
13 * Create a reflection object from a callable.
14 *
15 * @author Matthieu Napoli <matthieu@mnapoli.fr>
16 */
17 class CallableReflectionFactory
18 {
19 /**
20 * @param callable $callable
21 *
22 * @return \ReflectionFunctionAbstract
23 */
24 public static function fromCallable($callable)
25 {
26 // Array callable
27 if (is_array($callable)) {
28 list($class, $method) = $callable;
29
30 return new \ReflectionMethod($class, $method);
31 }
32
33 // Closure
34 if ($callable instanceof \Closure) {
35 return new \ReflectionFunction($callable);
36 }
37
38 // Callable object (i.e. implementing __invoke())
39 if (is_object($callable) && method_exists($callable, '__invoke')) {
40 return new \ReflectionMethod($callable, '__invoke');
41 }
42
43 // Callable class (i.e. implementing __invoke())
44 if (is_string($callable) && class_exists($callable) && method_exists($callable, '__invoke')) {
45 return new \ReflectionMethod($callable, '__invoke');
46 }
47
48 // Standard function
49 return new \ReflectionFunction($callable);
50 }
51 }
52