芝麻web文件管理V1.00
编辑当前文件:/home/qrafawbu/kwesioben.com/paymoney/vendor/phpunit/phpunit/src/Metadata/Api/HookMethods.php
* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace PHPUnit\Metadata\Api; use function array_unshift; use function assert; use function class_exists; use PHPUnit\Metadata\Parser\Registry; use PHPUnit\Util\Reflection; use ReflectionClass; use ReflectionException; /** * @internal This class is not covered by the backward compatibility promise for PHPUnit */ final class HookMethods { /** * @psalm-var array
, before: list
, preCondition: list
, postCondition: list
, after: list
, afterClass: list
}> */ private static array $hookMethods = []; /** * @psalm-param class-string $className * * @psalm-return array{beforeClass: list
, before: list
, preCondition: list
, postCondition: list
, after: list
, afterClass: list
} */ public function hookMethods(string $className): array { if (!class_exists($className, false)) { return self::emptyHookMethodsArray(); } if (isset(self::$hookMethods[$className])) { return self::$hookMethods[$className]; } self::$hookMethods[$className] = self::emptyHookMethodsArray(); try { foreach ((new Reflection)->methodsInTestClass(new ReflectionClass($className)) as $method) { $methodName = $method->getName(); assert(!empty($methodName)); $metadata = Registry::parser()->forMethod($className, $methodName); if ($method->isStatic()) { if ($metadata->isBeforeClass()->isNotEmpty()) { array_unshift( self::$hookMethods[$className]['beforeClass'], $methodName ); } if ($metadata->isAfterClass()->isNotEmpty()) { self::$hookMethods[$className]['afterClass'][] = $methodName; } } if ($metadata->isBefore()->isNotEmpty()) { array_unshift( self::$hookMethods[$className]['before'], $methodName ); } if ($metadata->isPreCondition()->isNotEmpty()) { array_unshift( self::$hookMethods[$className]['preCondition'], $methodName ); } if ($metadata->isPostCondition()->isNotEmpty()) { self::$hookMethods[$className]['postCondition'][] = $methodName; } if ($metadata->isAfter()->isNotEmpty()) { self::$hookMethods[$className]['after'][] = $methodName; } } } catch (ReflectionException) { } return self::$hookMethods[$className]; } /** * @psalm-return array{beforeClass: list
, before: list
, preCondition: list
, postCondition: list
, after: list
, afterClass: list
} */ private static function emptyHookMethodsArray(): array { return [ 'beforeClass' => ['setUpBeforeClass'], 'before' => ['setUp'], 'preCondition' => ['assertPreConditions'], 'postCondition' => ['assertPostConditions'], 'after' => ['tearDown'], 'afterClass' => ['tearDownAfterClass'], ]; } }