Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. HookMethods.php

function HookMethods::hookMethods

@psalm-param class-string $className

@psalm-return array{beforeClass: list<non-empty-string>, before: list<non-empty-string>, preCondition: list<non-empty-string>, postCondition: list<non-empty-string>, after: list<non-empty-string>, afterClass: list<non-empty-string>}

File

vendor/phpunit/phpunit/src/Metadata/Api/HookMethods.php, line 36

Class

HookMethods
@no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit

Namespace

PHPUnit\Metadata\Api

Code

public function hookMethods(string $className) : array {
    if (!class_exists($className)) {
        return self::emptyHookMethodsArray();
    }
    if (isset(self::$hookMethods[$className])) {
        return self::$hookMethods[$className];
    }
    self::$hookMethods[$className] = self::emptyHookMethodsArray();
    foreach (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;
        }
    }
    return self::$hookMethods[$className];
}
RSS feed
Powered by Drupal