mirror of
https://github.com/rectorphp/rector.git
synced 2024-05-30 16:00:52 +00:00
Updated Rector to commit 36ac5305f1b7b1007e4cbf6260695d2ae16fef5f
36ac5305f1
[DX] Use own path normalizer (#2881)
This commit is contained in:
parent
0bff8e99f4
commit
d82c31f345
|
@ -55,10 +55,6 @@ use RectorPrefix202209\Symplify\PackageBuilder\Reflection\ClassLikeExistenceChec
|
|||
use RectorPrefix202209\Symplify\PackageBuilder\Reflection\PrivatesAccessor;
|
||||
use RectorPrefix202209\Symplify\PackageBuilder\Reflection\PrivatesCaller;
|
||||
use RectorPrefix202209\Symplify\PackageBuilder\Yaml\ParametersMerger;
|
||||
use RectorPrefix202209\Symplify\SmartFileSystem\FileSystemFilter;
|
||||
use RectorPrefix202209\Symplify\SmartFileSystem\FileSystemGuard;
|
||||
use RectorPrefix202209\Symplify\SmartFileSystem\Finder\FinderSanitizer;
|
||||
use RectorPrefix202209\Symplify\SmartFileSystem\Normalizer\PathNormalizer;
|
||||
return static function (RectorConfig $rectorConfig) : void {
|
||||
// make use of https://github.com/symplify/easy-parallel
|
||||
$rectorConfig->import(EasyParallelConfig::FILE_PATH);
|
||||
|
@ -123,11 +119,8 @@ return static function (RectorConfig $rectorConfig) : void {
|
|||
$services->set(Parser::class)->factory([service(PHPStanServicesFactory::class), 'createPHPStanParser']);
|
||||
$services->set(Lexer::class)->factory([service(PHPStanServicesFactory::class), 'createEmulativeLexer']);
|
||||
// symplify/package-builder
|
||||
$services->set(FileSystemGuard::class);
|
||||
$services->set(PrivatesAccessor::class);
|
||||
$services->set(PrivatesCaller::class);
|
||||
$services->set(FinderSanitizer::class);
|
||||
$services->set(FileSystemFilter::class);
|
||||
$services->set(ParameterProvider::class)->arg('$container', service('service_container'));
|
||||
$services->set(InflectorFactory::class);
|
||||
$services->set(Inflector::class)->factory([service(InflectorFactory::class), 'build']);
|
||||
|
@ -162,5 +155,4 @@ return static function (RectorConfig $rectorConfig) : void {
|
|||
$services->set(ConstExprParser::class);
|
||||
// skipper
|
||||
$services->set(ClassLikeExistenceChecker::class);
|
||||
$services->set(PathNormalizer::class);
|
||||
};
|
||||
|
|
|
@ -4,8 +4,8 @@ declare (strict_types=1);
|
|||
namespace Rector\Skipper\SkipCriteriaResolver;
|
||||
|
||||
use Rector\Core\Configuration\Option;
|
||||
use Rector\Core\FileSystem\FilePathHelper;
|
||||
use RectorPrefix202209\Symplify\PackageBuilder\Parameter\ParameterProvider;
|
||||
use RectorPrefix202209\Symplify\SmartFileSystem\Normalizer\PathNormalizer;
|
||||
/**
|
||||
* @see \Rector\Tests\Skipper\SkipCriteriaResolver\SkippedPathsResolver\SkippedPathsResolverTest
|
||||
*/
|
||||
|
@ -22,13 +22,13 @@ final class SkippedPathsResolver
|
|||
private $parameterProvider;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Symplify\SmartFileSystem\Normalizer\PathNormalizer
|
||||
* @var \Rector\Core\FileSystem\FilePathHelper
|
||||
*/
|
||||
private $pathNormalizer;
|
||||
public function __construct(ParameterProvider $parameterProvider, PathNormalizer $pathNormalizer)
|
||||
private $filePathHelper;
|
||||
public function __construct(ParameterProvider $parameterProvider, FilePathHelper $filePathHelper)
|
||||
{
|
||||
$this->parameterProvider = $parameterProvider;
|
||||
$this->pathNormalizer = $pathNormalizer;
|
||||
$this->filePathHelper = $filePathHelper;
|
||||
}
|
||||
/**
|
||||
* @return string[]
|
||||
|
@ -44,12 +44,11 @@ final class SkippedPathsResolver
|
|||
continue;
|
||||
}
|
||||
if (\file_exists($value)) {
|
||||
$this->skippedPaths[] = $this->pathNormalizer->normalizePath($value);
|
||||
$this->skippedPaths[] = $this->filePathHelper->normalizePathAndSchema($value);
|
||||
continue;
|
||||
}
|
||||
if (\strpos((string) $value, '*') !== \false) {
|
||||
$this->skippedPaths[] = $this->pathNormalizer->normalizePath($value);
|
||||
continue;
|
||||
$this->skippedPaths[] = $this->filePathHelper->normalizePathAndSchema($value);
|
||||
}
|
||||
}
|
||||
return $this->skippedPaths;
|
||||
|
|
|
@ -5,10 +5,10 @@ namespace Rector\VendorLocker\NodeVendorLocker;
|
|||
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PHPStan\Reflection\ClassReflection;
|
||||
use Rector\Core\FileSystem\FilePathHelper;
|
||||
use Rector\Core\Reflection\ReflectionResolver;
|
||||
use Rector\FamilyTree\Reflection\FamilyRelationsAnalyzer;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use RectorPrefix202209\Symplify\SmartFileSystem\Normalizer\PathNormalizer;
|
||||
final class ClassMethodParamVendorLockResolver
|
||||
{
|
||||
/**
|
||||
|
@ -16,11 +16,6 @@ final class ClassMethodParamVendorLockResolver
|
|||
* @var \Rector\NodeNameResolver\NodeNameResolver
|
||||
*/
|
||||
private $nodeNameResolver;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Symplify\SmartFileSystem\Normalizer\PathNormalizer
|
||||
*/
|
||||
private $pathNormalizer;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\FamilyTree\Reflection\FamilyRelationsAnalyzer
|
||||
|
@ -31,12 +26,17 @@ final class ClassMethodParamVendorLockResolver
|
|||
* @var \Rector\Core\Reflection\ReflectionResolver
|
||||
*/
|
||||
private $reflectionResolver;
|
||||
public function __construct(NodeNameResolver $nodeNameResolver, PathNormalizer $pathNormalizer, FamilyRelationsAnalyzer $familyRelationsAnalyzer, ReflectionResolver $reflectionResolver)
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Core\FileSystem\FilePathHelper
|
||||
*/
|
||||
private $filePathHelper;
|
||||
public function __construct(NodeNameResolver $nodeNameResolver, FamilyRelationsAnalyzer $familyRelationsAnalyzer, ReflectionResolver $reflectionResolver, FilePathHelper $filePathHelper)
|
||||
{
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->pathNormalizer = $pathNormalizer;
|
||||
$this->familyRelationsAnalyzer = $familyRelationsAnalyzer;
|
||||
$this->reflectionResolver = $reflectionResolver;
|
||||
$this->filePathHelper = $filePathHelper;
|
||||
}
|
||||
/**
|
||||
* Includes non-vendor classes
|
||||
|
@ -121,7 +121,7 @@ final class ClassMethodParamVendorLockResolver
|
|||
if ($filePathPartName === '') {
|
||||
return \true;
|
||||
}
|
||||
$normalizedFileName = $this->pathNormalizer->normalizePath($fileName);
|
||||
$normalizedFileName = $this->filePathHelper->normalizePathAndSchema($fileName);
|
||||
if (\strpos($normalizedFileName, $filePathPartName) !== \false) {
|
||||
return \true;
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ use PHPStan\Reflection\MethodReflection;
|
|||
use PHPStan\Reflection\ParametersAcceptorSelector;
|
||||
use PHPStan\Type\MixedType;
|
||||
use PHPStan\Type\Type;
|
||||
use Rector\Core\FileSystem\FilePathHelper;
|
||||
use Rector\Core\PhpParser\AstResolver;
|
||||
use Rector\Core\Reflection\ReflectionResolver;
|
||||
use Rector\Core\ValueObject\MethodName;
|
||||
|
@ -17,7 +18,6 @@ use Rector\NodeNameResolver\NodeNameResolver;
|
|||
use Rector\NodeTypeResolver\TypeComparator\TypeComparator;
|
||||
use Rector\StaticTypeMapper\StaticTypeMapper;
|
||||
use Rector\TypeDeclaration\TypeInferer\ParamTypeInferer;
|
||||
use RectorPrefix202209\Symplify\SmartFileSystem\Normalizer\PathNormalizer;
|
||||
final class ParentClassMethodTypeOverrideGuard
|
||||
{
|
||||
/**
|
||||
|
@ -25,11 +25,6 @@ final class ParentClassMethodTypeOverrideGuard
|
|||
* @var \Rector\NodeNameResolver\NodeNameResolver
|
||||
*/
|
||||
private $nodeNameResolver;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Symplify\SmartFileSystem\Normalizer\PathNormalizer
|
||||
*/
|
||||
private $pathNormalizer;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Core\PhpParser\AstResolver
|
||||
|
@ -55,15 +50,20 @@ final class ParentClassMethodTypeOverrideGuard
|
|||
* @var \Rector\StaticTypeMapper\StaticTypeMapper
|
||||
*/
|
||||
private $staticTypeMapper;
|
||||
public function __construct(NodeNameResolver $nodeNameResolver, PathNormalizer $pathNormalizer, AstResolver $astResolver, ParamTypeInferer $paramTypeInferer, ReflectionResolver $reflectionResolver, TypeComparator $typeComparator, StaticTypeMapper $staticTypeMapper)
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Core\FileSystem\FilePathHelper
|
||||
*/
|
||||
private $filePathHelper;
|
||||
public function __construct(NodeNameResolver $nodeNameResolver, AstResolver $astResolver, ParamTypeInferer $paramTypeInferer, ReflectionResolver $reflectionResolver, TypeComparator $typeComparator, StaticTypeMapper $staticTypeMapper, FilePathHelper $filePathHelper)
|
||||
{
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->pathNormalizer = $pathNormalizer;
|
||||
$this->astResolver = $astResolver;
|
||||
$this->paramTypeInferer = $paramTypeInferer;
|
||||
$this->reflectionResolver = $reflectionResolver;
|
||||
$this->typeComparator = $typeComparator;
|
||||
$this->staticTypeMapper = $staticTypeMapper;
|
||||
$this->filePathHelper = $filePathHelper;
|
||||
}
|
||||
public function isReturnTypeChangeAllowed(ClassMethod $classMethod) : bool
|
||||
{
|
||||
|
@ -103,10 +103,10 @@ final class ParentClassMethodTypeOverrideGuard
|
|||
/** @var string $currentFileName */
|
||||
$currentFileName = $currentClassReflection->getFileName();
|
||||
// child (current)
|
||||
$normalizedCurrentFileName = $this->pathNormalizer->normalizePath($currentFileName);
|
||||
$normalizedCurrentFileName = $this->filePathHelper->normalizePathAndSchema($currentFileName);
|
||||
$isCurrentInVendor = \strpos($normalizedCurrentFileName, '/vendor/') !== \false;
|
||||
// parent
|
||||
$normalizedFileName = $this->pathNormalizer->normalizePath($fileName);
|
||||
$normalizedFileName = $this->filePathHelper->normalizePathAndSchema($fileName);
|
||||
$isParentInVendor = \strpos($normalizedFileName, '/vendor/') !== \false;
|
||||
return $isCurrentInVendor && $isParentInVendor || !$isCurrentInVendor && !$isParentInVendor;
|
||||
}
|
||||
|
|
|
@ -4,17 +4,17 @@ declare (strict_types=1);
|
|||
namespace Rector\CodingStyle\Reflection;
|
||||
|
||||
use PHPStan\Reflection\MethodReflection;
|
||||
use RectorPrefix202209\Symplify\SmartFileSystem\Normalizer\PathNormalizer;
|
||||
use Rector\Core\FileSystem\FilePathHelper;
|
||||
final class VendorLocationDetector
|
||||
{
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Symplify\SmartFileSystem\Normalizer\PathNormalizer
|
||||
* @var \Rector\Core\FileSystem\FilePathHelper
|
||||
*/
|
||||
private $pathNormalizer;
|
||||
public function __construct(PathNormalizer $pathNormalizer)
|
||||
private $filePathHelper;
|
||||
public function __construct(FilePathHelper $filePathHelper)
|
||||
{
|
||||
$this->pathNormalizer = $pathNormalizer;
|
||||
$this->filePathHelper = $filePathHelper;
|
||||
}
|
||||
public function detectMethodReflection(MethodReflection $methodReflection) : bool
|
||||
{
|
||||
|
@ -24,7 +24,7 @@ final class VendorLocationDetector
|
|||
if ($fileName === null) {
|
||||
return \false;
|
||||
}
|
||||
$normalizedFileName = $this->pathNormalizer->normalizePath($fileName);
|
||||
$normalizedFileName = $this->filePathHelper->normalizePathAndSchema($fileName);
|
||||
return \strpos($normalizedFileName, '/vendor/') !== \false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ class SomeClass
|
|||
}
|
||||
CODE_SAMPLE
|
||||
, <<<'CODE_SAMPLE'
|
||||
use Symplify\SmartFileSystem\SmartFileSystem;
|
||||
use App\Custom\SmartFileSystem;
|
||||
|
||||
class SomeClass
|
||||
{
|
||||
|
@ -70,7 +70,7 @@ class SomeClass
|
|||
}
|
||||
}
|
||||
CODE_SAMPLE
|
||||
, [new StaticCallToMethodCall('Nette\\Utils\\FileSystem', 'write', 'Symplify\\SmartFileSystem\\SmartFileSystem', 'dumpFile')])]);
|
||||
, [new StaticCallToMethodCall('Nette\\Utils\\FileSystem', 'write', 'App\\Custom\\SmartFileSystem', 'dumpFile')])]);
|
||||
}
|
||||
/**
|
||||
* @return array<class-string<Node>>
|
||||
|
|
|
@ -17,12 +17,12 @@ final class VersionResolver
|
|||
* @api
|
||||
* @var string
|
||||
*/
|
||||
public const PACKAGE_VERSION = 'a80c361c217599c8c1b8b552d650b92039a9cad8';
|
||||
public const PACKAGE_VERSION = '36ac5305f1b7b1007e4cbf6260695d2ae16fef5f';
|
||||
/**
|
||||
* @api
|
||||
* @var string
|
||||
*/
|
||||
public const RELEASE_DATE = '2022-09-01 13:21:47';
|
||||
public const RELEASE_DATE = '2022-09-01 11:43:47';
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
|
|
|
@ -3,10 +3,28 @@
|
|||
declare (strict_types=1);
|
||||
namespace Rector\Core\FileSystem;
|
||||
|
||||
use RectorPrefix202209\Nette\Utils\Strings;
|
||||
use RectorPrefix202209\Symfony\Component\Filesystem\Filesystem;
|
||||
use RectorPrefix202209\Webmozart\Assert\Assert;
|
||||
/**
|
||||
* @see \Rector\Core\Tests\FileSystem\FilePathHelperTest
|
||||
*/
|
||||
final class FilePathHelper
|
||||
{
|
||||
/**
|
||||
* @see https://regex101.com/r/d4F5Fm/1
|
||||
* @var string
|
||||
*/
|
||||
private const SCHEME_PATH_REGEX = '#^([a-z]+)\\:\\/\\/(.+)#';
|
||||
/**
|
||||
* @see https://regex101.com/r/no28vw/1
|
||||
* @var string
|
||||
*/
|
||||
private const TWO_AND_MORE_SLASHES_REGEX = '#/{2,}#';
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private const SCHEME_UNDEFINED = 'undefined';
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Symfony\Component\Filesystem\Filesystem
|
||||
|
@ -33,8 +51,57 @@ final class FilePathHelper
|
|||
$relativeFilePath = $this->filesystem->makePathRelative($normalizedFileRealPath, $directory);
|
||||
return \rtrim($relativeFilePath, '/');
|
||||
}
|
||||
/**
|
||||
* Used from
|
||||
* https://github.com/phpstan/phpstan-src/blob/02425e61aa48f0668b4efb3e73d52ad544048f65/src/File/FileHelper.php#L40, with custom modifications
|
||||
*/
|
||||
public function normalizePathAndSchema(string $originalPath) : string
|
||||
{
|
||||
$directorySeparator = \DIRECTORY_SEPARATOR;
|
||||
$matches = Strings::match($originalPath, self::SCHEME_PATH_REGEX);
|
||||
if ($matches !== null) {
|
||||
[, $scheme, $path] = $matches;
|
||||
} else {
|
||||
$scheme = self::SCHEME_UNDEFINED;
|
||||
$path = $originalPath;
|
||||
}
|
||||
$normalizedPath = \str_replace('\\', '/', (string) $path);
|
||||
$path = Strings::replace($normalizedPath, self::TWO_AND_MORE_SLASHES_REGEX, '/');
|
||||
$pathRoot = \strncmp($path, '/', \strlen('/')) === 0 ? $directorySeparator : '';
|
||||
$pathParts = \explode('/', \trim($path, '/'));
|
||||
$normalizedPathParts = $this->normalizePathParts($pathParts, $scheme);
|
||||
$pathStart = $scheme !== self::SCHEME_UNDEFINED ? $scheme . '://' : '';
|
||||
return $pathStart . $pathRoot . \implode($directorySeparator, $normalizedPathParts);
|
||||
}
|
||||
private function normalizePath(string $filePath) : string
|
||||
{
|
||||
return \str_replace('\\', '/', $filePath);
|
||||
}
|
||||
/**
|
||||
* @param string[] $pathParts
|
||||
* @return string[]
|
||||
*/
|
||||
private function normalizePathParts(array $pathParts, string $scheme) : array
|
||||
{
|
||||
$normalizedPathParts = [];
|
||||
foreach ($pathParts as $pathPart) {
|
||||
if ($pathPart === '.') {
|
||||
continue;
|
||||
}
|
||||
if ($pathPart !== '..') {
|
||||
$normalizedPathParts[] = $pathPart;
|
||||
continue;
|
||||
}
|
||||
/** @var string $removedPart */
|
||||
$removedPart = \array_pop($normalizedPathParts);
|
||||
if ($scheme !== 'phar') {
|
||||
continue;
|
||||
}
|
||||
if (\substr_compare($removedPart, '.phar', -\strlen('.phar')) !== 0) {
|
||||
continue;
|
||||
}
|
||||
$scheme = self::SCHEME_UNDEFINED;
|
||||
}
|
||||
return $normalizedPathParts;
|
||||
}
|
||||
}
|
||||
|
|
2
vendor/autoload.php
vendored
2
vendor/autoload.php
vendored
|
@ -9,4 +9,4 @@ if (PHP_VERSION_ID < 50600) {
|
|||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
return ComposerAutoloaderInit16f503294ee2a523888913eeb55d415a::getLoader();
|
||||
return ComposerAutoloaderInit987a820e4ab42f95f863b0dee1fe6a26::getLoader();
|
||||
|
|
14
vendor/composer/autoload_real.php
vendored
14
vendor/composer/autoload_real.php
vendored
|
@ -2,7 +2,7 @@
|
|||
|
||||
// autoload_real.php @generated by Composer
|
||||
|
||||
class ComposerAutoloaderInit16f503294ee2a523888913eeb55d415a
|
||||
class ComposerAutoloaderInit987a820e4ab42f95f863b0dee1fe6a26
|
||||
{
|
||||
private static $loader;
|
||||
|
||||
|
@ -22,19 +22,19 @@ class ComposerAutoloaderInit16f503294ee2a523888913eeb55d415a
|
|||
return self::$loader;
|
||||
}
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInit16f503294ee2a523888913eeb55d415a', 'loadClassLoader'), true, true);
|
||||
spl_autoload_register(array('ComposerAutoloaderInit987a820e4ab42f95f863b0dee1fe6a26', 'loadClassLoader'), true, true);
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInit16f503294ee2a523888913eeb55d415a', 'loadClassLoader'));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInit987a820e4ab42f95f863b0dee1fe6a26', 'loadClassLoader'));
|
||||
|
||||
require __DIR__ . '/autoload_static.php';
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInit16f503294ee2a523888913eeb55d415a::getInitializer($loader));
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInit987a820e4ab42f95f863b0dee1fe6a26::getInitializer($loader));
|
||||
|
||||
$loader->setClassMapAuthoritative(true);
|
||||
$loader->register(true);
|
||||
|
||||
$includeFiles = \Composer\Autoload\ComposerStaticInit16f503294ee2a523888913eeb55d415a::$files;
|
||||
$includeFiles = \Composer\Autoload\ComposerStaticInit987a820e4ab42f95f863b0dee1fe6a26::$files;
|
||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
||||
composerRequire16f503294ee2a523888913eeb55d415a($fileIdentifier, $file);
|
||||
composerRequire987a820e4ab42f95f863b0dee1fe6a26($fileIdentifier, $file);
|
||||
}
|
||||
|
||||
return $loader;
|
||||
|
@ -46,7 +46,7 @@ class ComposerAutoloaderInit16f503294ee2a523888913eeb55d415a
|
|||
* @param string $file
|
||||
* @return void
|
||||
*/
|
||||
function composerRequire16f503294ee2a523888913eeb55d415a($fileIdentifier, $file)
|
||||
function composerRequire987a820e4ab42f95f863b0dee1fe6a26($fileIdentifier, $file)
|
||||
{
|
||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
||||
|
|
8
vendor/composer/autoload_static.php
vendored
8
vendor/composer/autoload_static.php
vendored
|
@ -4,7 +4,7 @@
|
|||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
class ComposerStaticInit16f503294ee2a523888913eeb55d415a
|
||||
class ComposerStaticInit987a820e4ab42f95f863b0dee1fe6a26
|
||||
{
|
||||
public static $files = array (
|
||||
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
|
||||
|
@ -3139,9 +3139,9 @@ class ComposerStaticInit16f503294ee2a523888913eeb55d415a
|
|||
public static function getInitializer(ClassLoader $loader)
|
||||
{
|
||||
return \Closure::bind(function () use ($loader) {
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInit16f503294ee2a523888913eeb55d415a::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInit16f503294ee2a523888913eeb55d415a::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInit16f503294ee2a523888913eeb55d415a::$classMap;
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInit987a820e4ab42f95f863b0dee1fe6a26::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInit987a820e4ab42f95f863b0dee1fe6a26::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInit987a820e4ab42f95f863b0dee1fe6a26::$classMap;
|
||||
|
||||
}, null, ClassLoader::class);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user