PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.15.5
Independent Analytics – WordPress Analytics Plugin v2.15.5
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 / nesbot / carbon / src / Carbon / PHPStan / MacroScanner.php
independent-analytics / vendor / nesbot / carbon / src / Carbon / PHPStan Last commit date
AbstractMacro.php 2 years ago Macro.php 2 years ago MacroExtension.php 2 years ago MacroScanner.php 2 years ago
MacroScanner.php
68 lines
1 <?php
2
3 /**
4 * This file is part of the Carbon package.
5 *
6 * (c) Brian Nesbitt <brian@nesbot.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11 namespace IAWPSCOPED\Carbon\PHPStan;
12
13 use IAWPSCOPED\Carbon\CarbonInterface;
14 use IAWPSCOPED\PHPStan\Reflection\ReflectionProvider;
15 use ReflectionClass;
16 use ReflectionException;
17 /** @internal */
18 final class MacroScanner
19 {
20 /**
21 * @var \PHPStan\Reflection\ReflectionProvider
22 */
23 private $reflectionProvider;
24 /**
25 * MacroScanner constructor.
26 *
27 * @param \PHPStan\Reflection\ReflectionProvider $reflectionProvider
28 */
29 public function __construct(ReflectionProvider $reflectionProvider)
30 {
31 $this->reflectionProvider = $reflectionProvider;
32 }
33 /**
34 * Return true if the given pair class-method is a Carbon macro.
35 *
36 * @param class-string $className
37 * @param string $methodName
38 *
39 * @return bool
40 */
41 public function hasMethod(string $className, string $methodName) : bool
42 {
43 $classReflection = $this->reflectionProvider->getClass($className);
44 if ($classReflection->getName() !== CarbonInterface::class && !$classReflection->isSubclassOf(CarbonInterface::class)) {
45 return \false;
46 }
47 return \is_callable([$className, 'hasMacro']) && $className::hasMacro($methodName);
48 }
49 /**
50 * Return the Macro for a given pair class-method.
51 *
52 * @param class-string $className
53 * @param string $methodName
54 *
55 * @throws ReflectionException
56 *
57 * @return Macro
58 */
59 public function getMethod(string $className, string $methodName) : Macro
60 {
61 $reflectionClass = new ReflectionClass($className);
62 $property = $reflectionClass->getProperty('globalMacros');
63 $property->setAccessible(\true);
64 $macro = $property->getValue()[$methodName];
65 return new Macro($className, $methodName, $macro);
66 }
67 }
68