PluginProbe
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode / 3.11.3
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode v3.11.3
4.7.4 4.7.5 4.7.3 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 All 95 releases
cookiebot / addons / inc / Dependencies / DI / Reflection / CallableReflectionFactory.php

CallableReflectionFactory.php in Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode 3.11.3, at addons/inc/Dependencies/DI/Reflection/CallableReflectionFactory.php

52 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 <[email protected]>
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