PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.2.0
Independent Analytics – WordPress Analytics Plugin v2.2.0
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / illuminate / support / Reflector.php
independent-analytics / vendor / illuminate / support Last commit date
Facades 2 years ago Testing 2 years ago Traits 2 years ago AggregateServiceProvider.php 2 years ago Carbon.php 2 years ago Composer.php 2 years ago ConfigurationUrlParser.php 2 years ago DateFactory.php 2 years ago Env.php 2 years ago Fluent.php 2 years ago HigherOrderTapProxy.php 2 years ago HtmlString.php 2 years ago InteractsWithTime.php 2 years ago Js.php 2 years ago Manager.php 2 years ago MessageBag.php 2 years ago MultipleInstanceManager.php 2 years ago NamespacedItemResolver.php 2 years ago Optional.php 2 years ago Pluralizer.php 2 years ago ProcessUtils.php 2 years ago Reflector.php 2 years ago ServiceProvider.php 2 years ago Str.php 2 years ago Stringable.php 2 years ago Timebox.php 2 years ago ValidatedInput.php 2 years ago ViewErrorBag.php 2 years ago helpers.php 2 years ago
Reflector.php
114 lines
1 <?php
2
3 namespace IAWP_SCOPED\Illuminate\Support;
4
5 use ReflectionClass;
6 use ReflectionMethod;
7 use ReflectionNamedType;
8 use ReflectionUnionType;
9 /** @internal */
10 class Reflector
11 {
12 /**
13 * This is a PHP 7.4 compatible implementation of is_callable.
14 *
15 * @param mixed $var
16 * @param bool $syntaxOnly
17 * @return bool
18 */
19 public static function isCallable($var, $syntaxOnly = \false)
20 {
21 if (!\is_array($var)) {
22 return \is_callable($var, $syntaxOnly);
23 }
24 if (!isset($var[0]) || !isset($var[1]) || !\is_string($var[1] ?? null)) {
25 return \false;
26 }
27 if ($syntaxOnly && (\is_string($var[0]) || \is_object($var[0])) && \is_string($var[1])) {
28 return \true;
29 }
30 $class = \is_object($var[0]) ? \get_class($var[0]) : $var[0];
31 $method = $var[1];
32 if (!\class_exists($class)) {
33 return \false;
34 }
35 if (\method_exists($class, $method)) {
36 return (new ReflectionMethod($class, $method))->isPublic();
37 }
38 if (\is_object($var[0]) && \method_exists($class, '__call')) {
39 return (new ReflectionMethod($class, '__call'))->isPublic();
40 }
41 if (!\is_object($var[0]) && \method_exists($class, '__callStatic')) {
42 return (new ReflectionMethod($class, '__callStatic'))->isPublic();
43 }
44 return \false;
45 }
46 /**
47 * Get the class name of the given parameter's type, if possible.
48 *
49 * @param \ReflectionParameter $parameter
50 * @return string|null
51 */
52 public static function getParameterClassName($parameter)
53 {
54 $type = $parameter->getType();
55 if (!$type instanceof ReflectionNamedType || $type->isBuiltin()) {
56 return;
57 }
58 return static::getTypeName($parameter, $type);
59 }
60 /**
61 * Get the class names of the given parameter's type, including union types.
62 *
63 * @param \ReflectionParameter $parameter
64 * @return array
65 */
66 public static function getParameterClassNames($parameter)
67 {
68 $type = $parameter->getType();
69 if (!$type instanceof ReflectionUnionType) {
70 return \array_filter([static::getParameterClassName($parameter)]);
71 }
72 $unionTypes = [];
73 foreach ($type->getTypes() as $listedType) {
74 if (!$listedType instanceof ReflectionNamedType || $listedType->isBuiltin()) {
75 continue;
76 }
77 $unionTypes[] = static::getTypeName($parameter, $listedType);
78 }
79 return \array_filter($unionTypes);
80 }
81 /**
82 * Get the given type's class name.
83 *
84 * @param \ReflectionParameter $parameter
85 * @param \ReflectionNamedType $type
86 * @return string
87 */
88 protected static function getTypeName($parameter, $type)
89 {
90 $name = $type->getName();
91 if (!\is_null($class = $parameter->getDeclaringClass())) {
92 if ($name === 'self') {
93 return $class->getName();
94 }
95 if ($name === 'parent' && ($parent = $class->getParentClass())) {
96 return $parent->getName();
97 }
98 }
99 return $name;
100 }
101 /**
102 * Determine if the parameter's type is a subclass of the given type.
103 *
104 * @param \ReflectionParameter $parameter
105 * @param string $className
106 * @return bool
107 */
108 public static function isParameterSubclassOf($parameter, $className)
109 {
110 $paramClassName = static::getParameterClassName($parameter);
111 return $paramClassName && (\class_exists($paramClassName) || \interface_exists($paramClassName)) && (new ReflectionClass($paramClassName))->isSubclassOf($className);
112 }
113 }
114