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

Breadcrumb

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

function Requirements::requirementsNotSatisfiedFor

@psalm-param class-string $className @psalm-param non-empty-string $methodName

@psalm-return list<string>

File

vendor/phpunit/phpunit/src/Metadata/Api/Requirements.php, line 48

Class

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

Namespace

PHPUnit\Metadata\Api

Code

public function requirementsNotSatisfiedFor(string $className, string $methodName) : array {
    $notSatisfied = [];
    foreach (Registry::parser()->forClassAndMethod($className, $methodName) as $metadata) {
        if ($metadata->isRequiresPhp()) {
            assert($metadata instanceof RequiresPhp);
            if (!$metadata->versionRequirement()
                ->isSatisfiedBy(PHP_VERSION)) {
                $notSatisfied[] = sprintf('PHP %s is required.', $metadata->versionRequirement()
                    ->asString());
            }
        }
        if ($metadata->isRequiresPhpExtension()) {
            assert($metadata instanceof RequiresPhpExtension);
            if (!extension_loaded($metadata->extension()) || $metadata->hasVersionRequirement() && !$metadata->versionRequirement()
                ->isSatisfiedBy(phpversion($metadata->extension()))) {
                $notSatisfied[] = sprintf('PHP extension %s%s is required.', $metadata->extension(), $metadata->hasVersionRequirement() ? ' ' . $metadata->versionRequirement()
                    ->asString() : '');
            }
        }
        if ($metadata->isRequiresPhpunit()) {
            assert($metadata instanceof RequiresPhpunit);
            if (!$metadata->versionRequirement()
                ->isSatisfiedBy(Version::id())) {
                $notSatisfied[] = sprintf('PHPUnit %s is required.', $metadata->versionRequirement()
                    ->asString());
            }
        }
        if ($metadata->isRequiresOperatingSystemFamily()) {
            assert($metadata instanceof RequiresOperatingSystemFamily);
            if ($metadata->operatingSystemFamily() !== PHP_OS_FAMILY) {
                $notSatisfied[] = sprintf('Operating system %s is required.', $metadata->operatingSystemFamily());
            }
        }
        if ($metadata->isRequiresOperatingSystem()) {
            assert($metadata instanceof RequiresOperatingSystem);
            $pattern = sprintf('/%s/i', addcslashes($metadata->operatingSystem(), '/'));
            if (!preg_match($pattern, PHP_OS)) {
                $notSatisfied[] = sprintf('Operating system %s is required.', $metadata->operatingSystem());
            }
        }
        if ($metadata->isRequiresFunction()) {
            assert($metadata instanceof RequiresFunction);
            if (!function_exists($metadata->functionName())) {
                $notSatisfied[] = sprintf('Function %s() is required.', $metadata->functionName());
            }
        }
        if ($metadata->isRequiresMethod()) {
            assert($metadata instanceof RequiresMethod);
            if (!method_exists($metadata->className(), $metadata->methodName())) {
                $notSatisfied[] = sprintf('Method %s::%s() is required.', $metadata->className(), $metadata->methodName());
            }
        }
        if ($metadata->isRequiresSetting()) {
            assert($metadata instanceof RequiresSetting);
            if (ini_get($metadata->setting()) !== $metadata->value()) {
                $notSatisfied[] = sprintf('Setting "%s" is required to be "%s".', $metadata->setting(), $metadata->value());
            }
        }
    }
    return $notSatisfied;
}
RSS feed
Powered by Drupal