芝麻web文件管理V1.00
编辑当前文件:/home2/sdektunc/airport-back/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php
* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace PHPUnit\Runner; use function array_diff; use function array_values; use function class_exists; use function get_declared_classes; use function realpath; use function sprintf; use function str_replace; use function strlen; use function substr; use PHPUnit\Framework\TestCase; use PHPUnit\Util\FileLoader; use PHPUnit\Util\Filesystem; use ReflectionClass; use ReflectionException; /** * @internal This class is not covered by the backward compatibility promise for PHPUnit */ final class StandardTestSuiteLoader implements TestSuiteLoader { /** * @throws \PHPUnit\Framework\Exception * @throws Exception */ public function load(string $suiteClassName, string $suiteClassFile = ''): ReflectionClass { $suiteClassName = str_replace('.php', '', $suiteClassName); $filename = null; if (empty($suiteClassFile)) { $suiteClassFile = Filesystem::classNameToFilename( $suiteClassName ); } if (!class_exists($suiteClassName, false)) { $loadedClasses = get_declared_classes(); $filename = FileLoader::checkAndLoad($suiteClassFile); $loadedClasses = array_values( array_diff(get_declared_classes(), $loadedClasses) ); } if (!empty($loadedClasses) && !class_exists($suiteClassName, false)) { $offset = 0 - strlen($suiteClassName); foreach ($loadedClasses as $loadedClass) { try { $class = new ReflectionClass($loadedClass); // @codeCoverageIgnoreStart } catch (ReflectionException $e) { throw new Exception( $e->getMessage(), $e->getCode(), $e ); } // @codeCoverageIgnoreEnd if (substr($loadedClass, $offset) === $suiteClassName && $class->getFileName() == $filename) { $suiteClassName = $loadedClass; break; } } } if (!empty($loadedClasses) && !class_exists($suiteClassName, false)) { $testCaseClass = TestCase::class; foreach ($loadedClasses as $loadedClass) { try { $class = new ReflectionClass($loadedClass); // @codeCoverageIgnoreStart } catch (ReflectionException $e) { throw new Exception( $e->getMessage(), $e->getCode(), $e ); } // @codeCoverageIgnoreEnd $classFile = $class->getFileName(); if ($class->isSubclassOf($testCaseClass) && !$class->isAbstract()) { $suiteClassName = $loadedClass; $testCaseClass = $loadedClass; if ($classFile == realpath($suiteClassFile)) { break; } } if ($class->hasMethod('suite')) { try { $method = $class->getMethod('suite'); // @codeCoverageIgnoreStart } catch (ReflectionException $e) { throw new Exception( $e->getMessage(), $e->getCode(), $e ); } // @codeCoverageIgnoreEnd if (!$method->isAbstract() && $method->isPublic() && $method->isStatic()) { $suiteClassName = $loadedClass; if ($classFile == realpath($suiteClassFile)) { break; } } } } } if (class_exists($suiteClassName, false)) { try { $class = new ReflectionClass($suiteClassName); // @codeCoverageIgnoreStart } catch (ReflectionException $e) { throw new Exception( $e->getMessage(), $e->getCode(), $e ); } // @codeCoverageIgnoreEnd if ($class->getFileName() == realpath($suiteClassFile)) { return $class; } } throw new Exception( sprintf( "Class '%s' could not be found in '%s'.", $suiteClassName, $suiteClassFile ) ); } public function reload(ReflectionClass $aClass): ReflectionClass { return $aClass; } }