mirror of
https://github.com/rectorphp/rector.git
synced 2025-01-17 13:28:18 +01:00
65f6a3f867
8f86f525f7
Fix stub PHPUnit\Framework\TestCase (#1954)
70 lines
1.9 KiB
PHP
70 lines
1.9 KiB
PHP
<?php
|
|
|
|
declare(strict_types = 1);
|
|
|
|
// inspired by https://github.com/phpstan/phpstan/blob/master/bootstrap.php
|
|
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)) {
|
|
return;
|
|
}
|
|
}
|
|
});
|
|
|
|
if (! interface_exists('UnitEnum')) {
|
|
/**
|
|
* @since 8.1
|
|
*/
|
|
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);
|
|
}
|
|
}
|