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

Breadcrumb

  1. Drupal Core 11.1.x

XmlConfigurationFileFinder.php

Namespace

PHPUnit\TextUI\CliArguments

File

vendor/phpunit/phpunit/src/TextUI/Configuration/Cli/XmlConfigurationFileFinder.php

View source
<?php

declare (strict_types=1);

/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnit\TextUI\CliArguments;

use function getcwd;
use function is_dir;
use function is_file;
use function realpath;

/**
 * @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
 */
final class XmlConfigurationFileFinder {
    public function find(Configuration $configuration) : false|string {
        $useDefaultConfiguration = $configuration->useDefaultConfiguration();
        if ($configuration->hasConfigurationFile()) {
            if (is_dir($configuration->configurationFile())) {
                $candidate = $this->configurationFileInDirectory($configuration->configurationFile());
                if ($candidate !== false) {
                    return $candidate;
                }
                return false;
            }
            return $configuration->configurationFile();
        }
        if ($useDefaultConfiguration) {
            $candidate = $this->configurationFileInDirectory(getcwd());
            if ($candidate !== false) {
                return $candidate;
            }
        }
        return false;
    }
    private function configurationFileInDirectory(string $directory) : false|string {
        $candidates = [
            $directory . '/phpunit.xml',
            $directory . '/phpunit.dist.xml',
            $directory . '/phpunit.xml.dist',
        ];
        foreach ($candidates as $candidate) {
            if (is_file($candidate)) {
                return realpath($candidate);
            }
        }
        return false;
    }

}

Classes

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

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal