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

Breadcrumb

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

class Requirements

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

@internal This class is not covered by the backward compatibility promise for PHPUnit

Hierarchy

  • class \PHPUnit\Metadata\Api\Requirements

Expanded class hierarchy of Requirements

3 files declare their use of Requirements
TestBuilder.php in vendor/phpunit/phpunit/src/Framework/TestBuilder.php
TestCase.php in vendor/phpunit/phpunit/src/Framework/TestCase.php
TestSuite.php in vendor/phpunit/phpunit/src/Framework/TestSuite.php
5 string references to 'Requirements'
DbUpdateController::handle in core/modules/system/src/Controller/DbUpdateController.php
Returns a database update page.
HookCollectorPass::checkForProceduralOnlyHooks in core/lib/Drupal/Core/Hook/HookCollectorPass.php
Checks for hooks which can't be supported in classes.
hook_theme in core/lib/Drupal/Core/Render/theme.api.php
Register a module or theme's theme implementations.
MigrationPluginManager::buildDependencyMigration in core/modules/migrate/src/Plugin/MigrationPluginManager.php
PackageManagerHooks::help in core/modules/package_manager/src/Hook/PackageManagerHooks.php
Implements hook_help().

File

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

Namespace

PHPUnit\Metadata\Api
View source
final class Requirements {
    
    /**
     * @psalm-param class-string $className
     * @psalm-param non-empty-string $methodName
     *
     * @psalm-return list<string>
     */
    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;
    }

}

Members

Title Sort descending Modifiers Object type Summary
Requirements::requirementsNotSatisfiedFor public function @psalm-param class-string $className
@psalm-param non-empty-string $methodName
RSS feed
Powered by Drupal