From 9d74e20acba26a1b282f883bcb62639cad749750 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Sun, 13 Mar 2022 00:26:48 +0700 Subject: [PATCH] [Dep] Add PHPUnit\Framework\TestCase stub on target-repository bootstrap.php (#1924) --- build/target-repository/bootstrap.php | 122 ++++++++++++++------------ 1 file changed, 67 insertions(+), 55 deletions(-) diff --git a/build/target-repository/bootstrap.php b/build/target-repository/bootstrap.php index 09b6eed8569..b6c54466fff 100644 --- a/build/target-repository/bootstrap.php +++ b/build/target-repository/bootstrap.php @@ -2,69 +2,81 @@ declare(strict_types = 1); -// inspired by https://github.com/phpstan/phpstan/blob/master/bootstrap.php +namespace +{ + // inspired by https://github.com/phpstan/phpstan/blob/master/bootstrap.php + spl_autoload_register(function (string $class): void { + static $composerAutoloader; -spl_autoload_register(function (string $class): void { - static $composerAutoloader; - - // already loaded in bin/rector.php - if (defined('__RECTOR_RUNNING__')) { - return; - } - - // load prefixed or native class, e.g. for running tests - if (strpos($class, 'RectorPrefix') === 0 || strpos($class, 'Rector\\') === 0) { - if ($composerAutoloader === null) { - // prefixed version autoload - $composerAutoloader = require __DIR__ . '/vendor/autoload.php'; - } - $composerAutoloader->loadClass($class); - } - - // aliased by php-scoper, that's why its missing - if ($class === 'Symplify\SmartFileSystem\SmartFileInfo') { - $filePath = __DIR__ . '/vendor/symplify/smart-file-system/src/SmartFileInfo.php'; - if (file_exists($filePath)) { - require $filePath; - } - } - - if ($class === 'Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator') { - // avoid duplicated autoload bug in Rector demo runner - if (class_exists('Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator', false)) { + // already loaded in bin/rector.php + if (defined('__RECTOR_RUNNING__')) { return; } - } -}); -if (! interface_exists('UnitEnum')) { - /** - * @since 8.1 - */ - interface UnitEnum - { + // load prefixed or native class, e.g. for running tests + if (strpos($class, 'RectorPrefix') === 0 || strpos($class, 'Rector\\') === 0) { + if ($composerAutoloader === null) { + // prefixed version autoload + $composerAutoloader = require __DIR__ . '/vendor/autoload.php'; + } + $composerAutoloader->loadClass($class); + } + + // aliased by php-scoper, that's why its missing + if ($class === 'Symplify\SmartFileSystem\SmartFileInfo') { + $filePath = __DIR__ . '/vendor/symplify/smart-file-system/src/SmartFileInfo.php'; + if (file_exists($filePath)) { + require $filePath; + } + } + + if ($class === 'Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator') { + // avoid duplicated autoload bug in Rector demo runner + if (class_exists('Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator', false)) { + return; + } + } + }); + + if (! interface_exists('UnitEnum')) { /** - * @return static[] + * @since 8.1 */ - public static function cases(): array; + interface UnitEnum + { + /** + * @return static[] + */ + public static function cases(): array; + } + } + + if (! interface_exists('BackedEnum')) { + /** + * @since 8.1 + */ + interface BackedEnum extends UnitEnum { + /** + * @param int|string $value + * @return $this + */ + public static function from($value); + + /** + * @param int|string $value + * @return $this|null + */ + public static function tryFrom($value); + } } } -if (! interface_exists('BackedEnum')) { - /** - * @since 8.1 - */ - interface BackedEnum extends UnitEnum { - /** - * @param int|string $value - * @return $this - */ - public static function from($value); - - /** - * @param int|string $value - * @return $this|null - */ - public static function tryFrom($value); +// @see https://github.com/rectorphp/rector/issues/6531 +namespace PHPUnit\Framework +{ + if (! class_exists('PHPUnit\Framework\TestCase')) { + abstract class TestCase + { + } } }