mirror of
https://github.com/rectorphp/rector.git
synced 2024-05-31 00:10:51 +00:00
Updated Rector to commit 2ffad9317d2038e4c625341b338ab3cbd77f54cc
2ffad9317d
Inline Skipper (#2877)
This commit is contained in:
parent
88b26b2c9b
commit
31ff77efb6
|
@ -51,12 +51,14 @@ use RectorPrefix202208\Symplify\EasyParallel\ValueObject\EasyParallelConfig;
|
|||
use RectorPrefix202208\Symplify\PackageBuilder\Console\Style\SymfonyStyleFactory;
|
||||
use RectorPrefix202208\Symplify\PackageBuilder\Parameter\ParameterProvider;
|
||||
use RectorPrefix202208\Symplify\PackageBuilder\Php\TypeChecker;
|
||||
use RectorPrefix202208\Symplify\PackageBuilder\Reflection\ClassLikeExistenceChecker;
|
||||
use RectorPrefix202208\Symplify\PackageBuilder\Reflection\PrivatesAccessor;
|
||||
use RectorPrefix202208\Symplify\PackageBuilder\Reflection\PrivatesCaller;
|
||||
use RectorPrefix202208\Symplify\PackageBuilder\Yaml\ParametersMerger;
|
||||
use RectorPrefix202208\Symplify\SmartFileSystem\FileSystemFilter;
|
||||
use RectorPrefix202208\Symplify\SmartFileSystem\FileSystemGuard;
|
||||
use RectorPrefix202208\Symplify\SmartFileSystem\Finder\FinderSanitizer;
|
||||
use RectorPrefix202208\Symplify\SmartFileSystem\Normalizer\PathNormalizer;
|
||||
return static function (RectorConfig $rectorConfig) : void {
|
||||
// make use of https://github.com/symplify/easy-parallel
|
||||
$rectorConfig->import(EasyParallelConfig::FILE_PATH);
|
||||
|
@ -158,4 +160,7 @@ return static function (RectorConfig $rectorConfig) : void {
|
|||
$services->set(\PHPStan\PhpDocParser\Lexer\Lexer::class);
|
||||
$services->set(TypeParser::class);
|
||||
$services->set(ConstExprParser::class);
|
||||
// skipper
|
||||
$services->set(ClassLikeExistenceChecker::class);
|
||||
$services->set(PathNormalizer::class);
|
||||
};
|
||||
|
|
|
@ -10,7 +10,7 @@ use Rector\Core\Logging\CurrentRectorProvider;
|
|||
use Rector\Core\Provider\CurrentFileProvider;
|
||||
use Rector\Core\ValueObject\Application\File;
|
||||
use Rector\PostRector\Contract\Rector\PostRectorInterface;
|
||||
use RectorPrefix202208\Symplify\Skipper\Skipper\Skipper;
|
||||
use Rector\Skipper\Skipper\Skipper;
|
||||
final class PostFileProcessor
|
||||
{
|
||||
/**
|
||||
|
@ -19,7 +19,7 @@ final class PostFileProcessor
|
|||
private $postRectors = [];
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Symplify\Skipper\Skipper\Skipper
|
||||
* @var \Rector\Skipper\Skipper\Skipper
|
||||
*/
|
||||
private $skipper;
|
||||
/**
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix202208\Symplify\Skipper\Contract;
|
||||
namespace Rector\Skipper\Contract;
|
||||
|
||||
use Symplify\SmartFileSystem\SmartFileInfo;
|
||||
interface SkipVoterInterface
|
||||
|
@ -12,6 +12,7 @@ interface SkipVoterInterface
|
|||
public function match($element) : bool;
|
||||
/**
|
||||
* @param string|object $element
|
||||
* @param string|\Symplify\SmartFileSystem\SmartFileInfo $file
|
||||
*/
|
||||
public function shouldSkip($element, SmartFileInfo $smartFileInfo) : bool;
|
||||
public function shouldSkip($element, $file) : bool;
|
||||
}
|
18
packages/Skipper/Enum/AsteriskMatch.php
Normal file
18
packages/Skipper/Enum/AsteriskMatch.php
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\Skipper\Enum;
|
||||
|
||||
final class AsteriskMatch
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
* @see https://regex101.com/r/aVUDjM/2
|
||||
*/
|
||||
public const ONLY_STARTS_WITH_ASTERISK_REGEX = '#^\\*(.*?)[^*]$#';
|
||||
/**
|
||||
* @var string
|
||||
* @see https://regex101.com/r/ZB2dFV/2
|
||||
*/
|
||||
public const ONLY_ENDS_WITH_ASTERISK_REGEX = '#^[^*](.*?)\\*$#';
|
||||
}
|
31
packages/Skipper/FileSystem/FnMatchPathNormalizer.php
Normal file
31
packages/Skipper/FileSystem/FnMatchPathNormalizer.php
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\Skipper\FileSystem;
|
||||
|
||||
use RectorPrefix202208\Nette\Utils\Strings;
|
||||
use Rector\Skipper\Enum\AsteriskMatch;
|
||||
/**
|
||||
* @see \Rector\Tests\Skipper\FileSystem\FnMatchPathNormalizerTest
|
||||
*/
|
||||
final class FnMatchPathNormalizer
|
||||
{
|
||||
public function normalizeForFnmatch(string $path) : string
|
||||
{
|
||||
// ends with *
|
||||
if (Strings::match($path, AsteriskMatch::ONLY_ENDS_WITH_ASTERISK_REGEX) !== null) {
|
||||
return '*' . $path;
|
||||
}
|
||||
// starts with *
|
||||
if (Strings::match($path, AsteriskMatch::ONLY_STARTS_WITH_ASTERISK_REGEX) !== null) {
|
||||
return $path . '*';
|
||||
}
|
||||
if (\strpos($path, '..') !== \false) {
|
||||
$path = \realpath($path);
|
||||
if ($path === \false) {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
return $path;
|
||||
}
|
||||
}
|
22
packages/Skipper/Fnmatcher.php
Normal file
22
packages/Skipper/Fnmatcher.php
Normal file
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\Skipper;
|
||||
|
||||
final class Fnmatcher
|
||||
{
|
||||
public function match(string $matchingPath, string $filePath) : bool
|
||||
{
|
||||
$normalizedMatchingPath = $this->normalizePath($matchingPath);
|
||||
$normalizedFilePath = $this->normalizePath($filePath);
|
||||
if (\fnmatch($normalizedMatchingPath, $normalizedFilePath)) {
|
||||
return \true;
|
||||
}
|
||||
// in case of relative compare
|
||||
return \fnmatch('*/' . $normalizedMatchingPath, $normalizedFilePath);
|
||||
}
|
||||
private function normalizePath(string $path) : string
|
||||
{
|
||||
return \str_replace('\\', '/', $path);
|
||||
}
|
||||
}
|
62
packages/Skipper/Matcher/FileInfoMatcher.php
Normal file
62
packages/Skipper/Matcher/FileInfoMatcher.php
Normal file
|
@ -0,0 +1,62 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\Skipper\Matcher;
|
||||
|
||||
use Rector\Skipper\FileSystem\FnMatchPathNormalizer;
|
||||
use Rector\Skipper\Fnmatcher;
|
||||
use Symplify\SmartFileSystem\SmartFileInfo;
|
||||
final class FileInfoMatcher
|
||||
{
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Skipper\FileSystem\FnMatchPathNormalizer
|
||||
*/
|
||||
private $fnMatchPathNormalizer;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Skipper\Fnmatcher
|
||||
*/
|
||||
private $fnmatcher;
|
||||
public function __construct(FnMatchPathNormalizer $fnMatchPathNormalizer, Fnmatcher $fnmatcher)
|
||||
{
|
||||
$this->fnMatchPathNormalizer = $fnMatchPathNormalizer;
|
||||
$this->fnmatcher = $fnmatcher;
|
||||
}
|
||||
/**
|
||||
* @param string[] $filePatterns
|
||||
* @param \Symplify\SmartFileSystem\SmartFileInfo|string $file
|
||||
*/
|
||||
public function doesFileInfoMatchPatterns($file, array $filePatterns) : bool
|
||||
{
|
||||
foreach ($filePatterns as $filePattern) {
|
||||
if ($this->doesFileMatchPattern($file, $filePattern)) {
|
||||
return \true;
|
||||
}
|
||||
}
|
||||
return \false;
|
||||
}
|
||||
/**
|
||||
* Supports both relative and absolute $file path. They differ for PHP-CS-Fixer and PHP_CodeSniffer.
|
||||
* @param \Symplify\SmartFileSystem\SmartFileInfo|string $file
|
||||
*/
|
||||
private function doesFileMatchPattern($file, string $ignoredPath) : bool
|
||||
{
|
||||
$filePath = $file instanceof SmartFileInfo ? $file->getRealPath() : $file;
|
||||
// in ecs.php, the path can be absolute
|
||||
if ($filePath === $ignoredPath) {
|
||||
return \true;
|
||||
}
|
||||
$ignoredPath = $this->fnMatchPathNormalizer->normalizeForFnmatch($ignoredPath);
|
||||
if ($ignoredPath === '') {
|
||||
return \false;
|
||||
}
|
||||
if (\strncmp($filePath, $ignoredPath, \strlen($ignoredPath)) === 0) {
|
||||
return \true;
|
||||
}
|
||||
if (\substr_compare($filePath, $ignoredPath, -\strlen($ignoredPath)) === 0) {
|
||||
return \true;
|
||||
}
|
||||
return $this->fnmatcher->match($ignoredPath, $filePath);
|
||||
}
|
||||
}
|
|
@ -1,11 +1,11 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix202208\Symplify\Skipper\SkipCriteriaResolver;
|
||||
namespace Rector\Skipper\SkipCriteriaResolver;
|
||||
|
||||
use Rector\Core\Configuration\Option;
|
||||
use RectorPrefix202208\Symplify\PackageBuilder\Parameter\ParameterProvider;
|
||||
use RectorPrefix202208\Symplify\PackageBuilder\Reflection\ClassLikeExistenceChecker;
|
||||
use RectorPrefix202208\Symplify\Skipper\ValueObject\Option;
|
||||
final class SkippedClassResolver
|
||||
{
|
||||
/**
|
||||
|
@ -13,10 +13,12 @@ final class SkippedClassResolver
|
|||
*/
|
||||
private $skippedClasses = [];
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Symplify\PackageBuilder\Parameter\ParameterProvider
|
||||
*/
|
||||
private $parameterProvider;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Symplify\PackageBuilder\Reflection\ClassLikeExistenceChecker
|
||||
*/
|
||||
private $classLikeExistenceChecker;
|
|
@ -1,13 +1,13 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix202208\Symplify\Skipper\SkipCriteriaResolver;
|
||||
namespace Rector\Skipper\SkipCriteriaResolver;
|
||||
|
||||
use Rector\Core\Configuration\Option;
|
||||
use RectorPrefix202208\Symplify\PackageBuilder\Parameter\ParameterProvider;
|
||||
use RectorPrefix202208\Symplify\Skipper\ValueObject\Option;
|
||||
use RectorPrefix202208\Symplify\SmartFileSystem\Normalizer\PathNormalizer;
|
||||
/**
|
||||
* @see \Symplify\Skipper\Tests\SkipCriteriaResolver\SkippedPathsResolver\SkippedPathsResolverTest
|
||||
* @see \Rector\Tests\Skipper\SkipCriteriaResolver\SkippedPathsResolver\SkippedPathsResolverTest
|
||||
*/
|
||||
final class SkippedPathsResolver
|
||||
{
|
||||
|
@ -16,10 +16,12 @@ final class SkippedPathsResolver
|
|||
*/
|
||||
private $skippedPaths = [];
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Symplify\PackageBuilder\Parameter\ParameterProvider
|
||||
*/
|
||||
private $parameterProvider;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Symplify\SmartFileSystem\Normalizer\PathNormalizer
|
||||
*/
|
||||
private $pathNormalizer;
|
||||
|
@ -45,7 +47,7 @@ final class SkippedPathsResolver
|
|||
$this->skippedPaths[] = $this->pathNormalizer->normalizePath($value);
|
||||
continue;
|
||||
}
|
||||
if (\strpos($value, '*') !== \false) {
|
||||
if (\strpos((string) $value, '*') !== \false) {
|
||||
$this->skippedPaths[] = $this->pathNormalizer->normalizePath($value);
|
||||
continue;
|
||||
}
|
53
packages/Skipper/SkipVoter/ClassSkipVoter.php
Normal file
53
packages/Skipper/SkipVoter/ClassSkipVoter.php
Normal file
|
@ -0,0 +1,53 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\Skipper\SkipVoter;
|
||||
|
||||
use Rector\Skipper\Contract\SkipVoterInterface;
|
||||
use Rector\Skipper\SkipCriteriaResolver\SkippedClassResolver;
|
||||
use Rector\Skipper\Skipper\SkipSkipper;
|
||||
use RectorPrefix202208\Symplify\PackageBuilder\Reflection\ClassLikeExistenceChecker;
|
||||
use Symplify\SmartFileSystem\SmartFileInfo;
|
||||
final class ClassSkipVoter implements SkipVoterInterface
|
||||
{
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Symplify\PackageBuilder\Reflection\ClassLikeExistenceChecker
|
||||
*/
|
||||
private $classLikeExistenceChecker;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Skipper\Skipper\SkipSkipper
|
||||
*/
|
||||
private $skipSkipper;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Skipper\SkipCriteriaResolver\SkippedClassResolver
|
||||
*/
|
||||
private $skippedClassResolver;
|
||||
public function __construct(ClassLikeExistenceChecker $classLikeExistenceChecker, SkipSkipper $skipSkipper, SkippedClassResolver $skippedClassResolver)
|
||||
{
|
||||
$this->classLikeExistenceChecker = $classLikeExistenceChecker;
|
||||
$this->skipSkipper = $skipSkipper;
|
||||
$this->skippedClassResolver = $skippedClassResolver;
|
||||
}
|
||||
/**
|
||||
* @param string|object $element
|
||||
*/
|
||||
public function match($element) : bool
|
||||
{
|
||||
if (\is_object($element)) {
|
||||
return \true;
|
||||
}
|
||||
return $this->classLikeExistenceChecker->doesClassLikeExist($element);
|
||||
}
|
||||
/**
|
||||
* @param string|object $element
|
||||
* @param \Symplify\SmartFileSystem\SmartFileInfo|string $file
|
||||
*/
|
||||
public function shouldSkip($element, $file) : bool
|
||||
{
|
||||
$skippedClasses = $this->skippedClassResolver->resolve();
|
||||
return $this->skipSkipper->doesMatchSkip($element, $file, $skippedClasses);
|
||||
}
|
||||
}
|
|
@ -1,20 +1,22 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix202208\Symplify\Skipper\SkipVoter;
|
||||
namespace Rector\Skipper\SkipVoter;
|
||||
|
||||
use RectorPrefix202208\Symplify\Skipper\Contract\SkipVoterInterface;
|
||||
use RectorPrefix202208\Symplify\Skipper\Matcher\FileInfoMatcher;
|
||||
use RectorPrefix202208\Symplify\Skipper\SkipCriteriaResolver\SkippedPathsResolver;
|
||||
use Rector\Skipper\Contract\SkipVoterInterface;
|
||||
use Rector\Skipper\Matcher\FileInfoMatcher;
|
||||
use Rector\Skipper\SkipCriteriaResolver\SkippedPathsResolver;
|
||||
use Symplify\SmartFileSystem\SmartFileInfo;
|
||||
final class PathSkipVoter implements SkipVoterInterface
|
||||
{
|
||||
/**
|
||||
* @var \Symplify\Skipper\Matcher\FileInfoMatcher
|
||||
* @readonly
|
||||
* @var \Rector\Skipper\Matcher\FileInfoMatcher
|
||||
*/
|
||||
private $fileInfoMatcher;
|
||||
/**
|
||||
* @var \Symplify\Skipper\SkipCriteriaResolver\SkippedPathsResolver
|
||||
* @readonly
|
||||
* @var \Rector\Skipper\SkipCriteriaResolver\SkippedPathsResolver
|
||||
*/
|
||||
private $skippedPathsResolver;
|
||||
public function __construct(FileInfoMatcher $fileInfoMatcher, SkippedPathsResolver $skippedPathsResolver)
|
||||
|
@ -31,10 +33,11 @@ final class PathSkipVoter implements SkipVoterInterface
|
|||
}
|
||||
/**
|
||||
* @param string|object $element
|
||||
* @param \Symplify\SmartFileSystem\SmartFileInfo|string $file
|
||||
*/
|
||||
public function shouldSkip($element, SmartFileInfo $smartFileInfo) : bool
|
||||
public function shouldSkip($element, $file) : bool
|
||||
{
|
||||
$skippedPaths = $this->skippedPathsResolver->resolve();
|
||||
return $this->fileInfoMatcher->doesFileInfoMatchPatterns($smartFileInfo, $skippedPaths);
|
||||
return $this->fileInfoMatcher->doesFileInfoMatchPatterns($file, $skippedPaths);
|
||||
}
|
||||
}
|
|
@ -1,17 +1,15 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix202208\Symplify\Skipper\Skipper;
|
||||
namespace Rector\Skipper\Skipper;
|
||||
|
||||
use RectorPrefix202208\Symplify\Skipper\Matcher\FileInfoMatcher;
|
||||
use Rector\Skipper\Matcher\FileInfoMatcher;
|
||||
use Symplify\SmartFileSystem\SmartFileInfo;
|
||||
/**
|
||||
* @see \Symplify\Skipper\Tests\Skipper\Skip\SkipSkipperTest
|
||||
*/
|
||||
final class SkipSkipper
|
||||
{
|
||||
/**
|
||||
* @var \Symplify\Skipper\Matcher\FileInfoMatcher
|
||||
* @readonly
|
||||
* @var \Rector\Skipper\Matcher\FileInfoMatcher
|
||||
*/
|
||||
private $fileInfoMatcher;
|
||||
public function __construct(FileInfoMatcher $fileInfoMatcher)
|
||||
|
@ -21,8 +19,9 @@ final class SkipSkipper
|
|||
/**
|
||||
* @param array<string, string[]|null> $skippedClasses
|
||||
* @param object|string $checker
|
||||
* @param \Symplify\SmartFileSystem\SmartFileInfo|string $file
|
||||
*/
|
||||
public function doesMatchSkip($checker, SmartFileInfo $smartFileInfo, array $skippedClasses) : bool
|
||||
public function doesMatchSkip($checker, $file, array $skippedClasses) : bool
|
||||
{
|
||||
foreach ($skippedClasses as $skippedClass => $skippedFiles) {
|
||||
if (!\is_a($checker, $skippedClass, \true)) {
|
||||
|
@ -32,7 +31,7 @@ final class SkipSkipper
|
|||
if (!\is_array($skippedFiles)) {
|
||||
return \true;
|
||||
}
|
||||
if ($this->fileInfoMatcher->doesFileInfoMatchPatterns($smartFileInfo, $skippedFiles)) {
|
||||
if ($this->fileInfoMatcher->doesFileInfoMatchPatterns($file, $skippedFiles)) {
|
||||
return \true;
|
||||
}
|
||||
}
|
|
@ -1,13 +1,13 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix202208\Symplify\Skipper\Skipper;
|
||||
namespace Rector\Skipper\Skipper;
|
||||
|
||||
use RectorPrefix202208\Symplify\Skipper\Contract\SkipVoterInterface;
|
||||
use Rector\Skipper\Contract\SkipVoterInterface;
|
||||
use Symplify\SmartFileSystem\SmartFileInfo;
|
||||
/**
|
||||
* @api
|
||||
* @see \Symplify\Skipper\Tests\Skipper\Skipper\SkipperTest
|
||||
* @see \Rector\Tests\Skipper\Skipper\Skipper\SkipperTest
|
||||
*/
|
||||
final class Skipper
|
||||
{
|
||||
|
@ -17,6 +17,7 @@ final class Skipper
|
|||
private const FILE_ELEMENT = 'file_elements';
|
||||
/**
|
||||
* @var SkipVoterInterface[]
|
||||
* @readonly
|
||||
*/
|
||||
private $skipVoters;
|
||||
/**
|
||||
|
@ -40,13 +41,16 @@ final class Skipper
|
|||
}
|
||||
/**
|
||||
* @param string|object $element
|
||||
* @param \Symplify\SmartFileSystem\SmartFileInfo|string $smartFileInfo
|
||||
*/
|
||||
public function shouldSkipElementAndFileInfo($element, SmartFileInfo $smartFileInfo) : bool
|
||||
public function shouldSkipElementAndFileInfo($element, $smartFileInfo) : bool
|
||||
{
|
||||
foreach ($this->skipVoters as $skipVoter) {
|
||||
if ($skipVoter->match($element)) {
|
||||
return $skipVoter->shouldSkip($element, $smartFileInfo);
|
||||
if (!$skipVoter->match($element)) {
|
||||
continue;
|
||||
}
|
||||
// dump(get_class($skipVoter));
|
||||
return $skipVoter->shouldSkip($element, $smartFileInfo);
|
||||
}
|
||||
return \false;
|
||||
}
|
|
@ -17,12 +17,12 @@ final class VersionResolver
|
|||
* @api
|
||||
* @var string
|
||||
*/
|
||||
public const PACKAGE_VERSION = 'e7c96a405bb28d1720b3b0e34bb4ce771dc22604';
|
||||
public const PACKAGE_VERSION = '2ffad9317d2038e4c625341b338ab3cbd77f54cc';
|
||||
/**
|
||||
* @api
|
||||
* @var string
|
||||
*/
|
||||
public const RELEASE_DATE = '2022-08-31 13:36:40';
|
||||
public const RELEASE_DATE = '2022-08-31 23:47:35';
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
|
|
|
@ -5,7 +5,6 @@ namespace Rector\Core\Configuration;
|
|||
|
||||
use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface;
|
||||
use Rector\Caching\ValueObject\Storage\FileCacheStorage;
|
||||
use RectorPrefix202208\Symplify\Skipper\ValueObject\Option as SkipperOption;
|
||||
final class Option
|
||||
{
|
||||
/**
|
||||
|
@ -90,7 +89,7 @@ final class Option
|
|||
* @deprecated Use @see \Rector\Config\RectorConfig::skip() instead
|
||||
* @var string
|
||||
*/
|
||||
public const SKIP = SkipperOption::SKIP;
|
||||
public const SKIP = 'skip';
|
||||
/**
|
||||
* @deprecated Use RectorConfig::fileExtensions() instead
|
||||
* @var string
|
||||
|
|
|
@ -5,25 +5,16 @@ namespace Rector\Core\FileSystem;
|
|||
|
||||
use Rector\Caching\UnchangedFilesFilter;
|
||||
use Rector\Core\Util\StringUtils;
|
||||
use Rector\Skipper\Enum\AsteriskMatch;
|
||||
use Rector\Skipper\SkipCriteriaResolver\SkippedPathsResolver;
|
||||
use RectorPrefix202208\Symfony\Component\Finder\Finder;
|
||||
use RectorPrefix202208\Symfony\Component\Finder\SplFileInfo;
|
||||
use RectorPrefix202208\Symplify\Skipper\SkipCriteriaResolver\SkippedPathsResolver;
|
||||
use Symplify\SmartFileSystem\SmartFileInfo;
|
||||
/**
|
||||
* @see \Rector\Core\Tests\FileSystem\FilesFinder\FilesFinderTest
|
||||
*/
|
||||
final class FilesFinder
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
* @see https://regex101.com/r/e1jm7v/1
|
||||
*/
|
||||
private const STARTS_WITH_ASTERISK_REGEX = '#^\\*(.*?)[^*]$#';
|
||||
/**
|
||||
* @var string
|
||||
* @see https://regex101.com/r/EgJQyZ/1
|
||||
*/
|
||||
private const ENDS_WITH_ASTERISK_REGEX = '#^[^*](.*?)\\*$#';
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Core\FileSystem\FilesystemTweaker
|
||||
|
@ -31,7 +22,7 @@ final class FilesFinder
|
|||
private $filesystemTweaker;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Symplify\Skipper\SkipCriteriaResolver\SkippedPathsResolver
|
||||
* @var \Rector\Skipper\SkipCriteriaResolver\SkippedPathsResolver
|
||||
*/
|
||||
private $skippedPathsResolver;
|
||||
/**
|
||||
|
@ -131,11 +122,11 @@ final class FilesFinder
|
|||
private function normalizeForFnmatch(string $path) : string
|
||||
{
|
||||
// ends with *
|
||||
if (StringUtils::isMatch($path, self::ENDS_WITH_ASTERISK_REGEX)) {
|
||||
if (StringUtils::isMatch($path, AsteriskMatch::ONLY_ENDS_WITH_ASTERISK_REGEX)) {
|
||||
return '*' . $path;
|
||||
}
|
||||
// starts with *
|
||||
if (StringUtils::isMatch($path, self::STARTS_WITH_ASTERISK_REGEX)) {
|
||||
if (StringUtils::isMatch($path, AsteriskMatch::ONLY_STARTS_WITH_ASTERISK_REGEX)) {
|
||||
return $path . '*';
|
||||
}
|
||||
return $path;
|
||||
|
|
|
@ -16,7 +16,6 @@ use RectorPrefix202208\Symfony\Component\DependencyInjection\ContainerInterface;
|
|||
use RectorPrefix202208\Symplify\AutowireArrayParameter\DependencyInjection\CompilerPass\AutowireArrayParameterCompilerPass;
|
||||
use RectorPrefix202208\Symplify\PackageBuilder\DependencyInjection\CompilerPass\AutowireInterfacesCompilerPass;
|
||||
use RectorPrefix202208\Symplify\PackageBuilder\ValueObject\ConsoleColorDiffConfig;
|
||||
use RectorPrefix202208\Symplify\Skipper\ValueObject\SkipperConfig;
|
||||
final class RectorKernel
|
||||
{
|
||||
/**
|
||||
|
@ -83,6 +82,6 @@ final class RectorKernel
|
|||
*/
|
||||
private function createDefaultConfigFiles() : array
|
||||
{
|
||||
return [__DIR__ . '/../../config/config.php', SkipperConfig::FILE_PATH, ConsoleColorDiffConfig::FILE_PATH];
|
||||
return [__DIR__ . '/../../config/config.php', ConsoleColorDiffConfig::FILE_PATH];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,9 +40,9 @@ use Rector\NodeTypeResolver\Node\AttributeKey;
|
|||
use Rector\NodeTypeResolver\NodeTypeResolver;
|
||||
use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser;
|
||||
use Rector\PostRector\Collector\NodesToRemoveCollector;
|
||||
use Rector\Skipper\Skipper\Skipper;
|
||||
use Rector\StaticTypeMapper\StaticTypeMapper;
|
||||
use RectorPrefix202208\Symfony\Contracts\Service\Attribute\Required;
|
||||
use RectorPrefix202208\Symplify\Skipper\Skipper\Skipper;
|
||||
abstract class AbstractRector extends NodeVisitorAbstract implements PhpRectorInterface
|
||||
{
|
||||
/**
|
||||
|
@ -126,7 +126,7 @@ CODE_SAMPLE;
|
|||
*/
|
||||
private $currentNodeProvider;
|
||||
/**
|
||||
* @var \Symplify\Skipper\Skipper\Skipper
|
||||
* @var \Rector\Skipper\Skipper\Skipper
|
||||
*/
|
||||
private $skipper;
|
||||
/**
|
||||
|
|
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 ComposerAutoloaderInitb496a15bdfc18f074819e8d555e3628c::getLoader();
|
||||
return ComposerAutoloaderInit0b84aa542f2b6aae334995f456d549cd::getLoader();
|
||||
|
|
27
vendor/composer/autoload_classmap.php
vendored
27
vendor/composer/autoload_classmap.php
vendored
|
@ -1063,22 +1063,6 @@ return array(
|
|||
'RectorPrefix202208\\Symplify\\PackageBuilder\\ValueObject\\MethodName' => $vendorDir . '/symplify/package-builder/src/ValueObject/MethodName.php',
|
||||
'RectorPrefix202208\\Symplify\\PackageBuilder\\ValueObject\\Option' => $vendorDir . '/symplify/package-builder/src/ValueObject/Option.php',
|
||||
'RectorPrefix202208\\Symplify\\PackageBuilder\\Yaml\\ParametersMerger' => $vendorDir . '/symplify/package-builder/src/Yaml/ParametersMerger.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\Contract\\SkipVoterInterface' => $vendorDir . '/symplify/skipper/src/Contract/SkipVoterInterface.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\FileSystem\\FnMatchPathNormalizer' => $vendorDir . '/symplify/skipper/src/FileSystem/FnMatchPathNormalizer.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\Matcher\\FileInfoMatcher' => $vendorDir . '/symplify/skipper/src/Matcher/FileInfoMatcher.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\SkipCriteriaResolver\\SkippedClassAndCodesResolver' => $vendorDir . '/symplify/skipper/src/SkipCriteriaResolver/SkippedClassAndCodesResolver.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\SkipCriteriaResolver\\SkippedClassResolver' => $vendorDir . '/symplify/skipper/src/SkipCriteriaResolver/SkippedClassResolver.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\SkipCriteriaResolver\\SkippedMessagesResolver' => $vendorDir . '/symplify/skipper/src/SkipCriteriaResolver/SkippedMessagesResolver.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\SkipCriteriaResolver\\SkippedPathsResolver' => $vendorDir . '/symplify/skipper/src/SkipCriteriaResolver/SkippedPathsResolver.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\SkipVoter\\ClassAndCodeSkipVoter' => $vendorDir . '/symplify/skipper/src/SkipVoter/ClassAndCodeSkipVoter.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\SkipVoter\\ClassSkipVoter' => $vendorDir . '/symplify/skipper/src/SkipVoter/ClassSkipVoter.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\SkipVoter\\MessageSkipVoter' => $vendorDir . '/symplify/skipper/src/SkipVoter/MessageSkipVoter.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\SkipVoter\\PathSkipVoter' => $vendorDir . '/symplify/skipper/src/SkipVoter/PathSkipVoter.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\Skipper\\OnlySkipper' => $vendorDir . '/symplify/skipper/src/Skipper/OnlySkipper.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\Skipper\\SkipSkipper' => $vendorDir . '/symplify/skipper/src/Skipper/SkipSkipper.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\Skipper\\Skipper' => $vendorDir . '/symplify/skipper/src/Skipper/Skipper.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\ValueObject\\Option' => $vendorDir . '/symplify/skipper/src/ValueObject/Option.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\ValueObject\\SkipperConfig' => $vendorDir . '/symplify/skipper/src/ValueObject/SkipperConfig.php',
|
||||
'RectorPrefix202208\\Symplify\\SmartFileSystem\\Exception\\DirectoryNotFoundException' => $vendorDir . '/symplify/smart-file-system/src/Exception/DirectoryNotFoundException.php',
|
||||
'RectorPrefix202208\\Symplify\\SmartFileSystem\\Exception\\FileNotFoundException' => $vendorDir . '/symplify/smart-file-system/src/Exception/FileNotFoundException.php',
|
||||
'RectorPrefix202208\\Symplify\\SmartFileSystem\\FileSystemFilter' => $vendorDir . '/symplify/smart-file-system/src/FileSystemFilter.php',
|
||||
|
@ -2477,6 +2461,17 @@ return array(
|
|||
'Rector\\Set\\ValueObject\\DowngradeSetList' => $vendorDir . '/rector/rector-downgrade-php/src/Set/ValueObject/DowngradeSetList.php',
|
||||
'Rector\\Set\\ValueObject\\LevelSetList' => $baseDir . '/packages/Set/ValueObject/LevelSetList.php',
|
||||
'Rector\\Set\\ValueObject\\SetList' => $baseDir . '/packages/Set/ValueObject/SetList.php',
|
||||
'Rector\\Skipper\\Contract\\SkipVoterInterface' => $baseDir . '/packages/Skipper/Contract/SkipVoterInterface.php',
|
||||
'Rector\\Skipper\\Enum\\AsteriskMatch' => $baseDir . '/packages/Skipper/Enum/AsteriskMatch.php',
|
||||
'Rector\\Skipper\\FileSystem\\FnMatchPathNormalizer' => $baseDir . '/packages/Skipper/FileSystem/FnMatchPathNormalizer.php',
|
||||
'Rector\\Skipper\\Fnmatcher' => $baseDir . '/packages/Skipper/Fnmatcher.php',
|
||||
'Rector\\Skipper\\Matcher\\FileInfoMatcher' => $baseDir . '/packages/Skipper/Matcher/FileInfoMatcher.php',
|
||||
'Rector\\Skipper\\SkipCriteriaResolver\\SkippedClassResolver' => $baseDir . '/packages/Skipper/SkipCriteriaResolver/SkippedClassResolver.php',
|
||||
'Rector\\Skipper\\SkipCriteriaResolver\\SkippedPathsResolver' => $baseDir . '/packages/Skipper/SkipCriteriaResolver/SkippedPathsResolver.php',
|
||||
'Rector\\Skipper\\SkipVoter\\ClassSkipVoter' => $baseDir . '/packages/Skipper/SkipVoter/ClassSkipVoter.php',
|
||||
'Rector\\Skipper\\SkipVoter\\PathSkipVoter' => $baseDir . '/packages/Skipper/SkipVoter/PathSkipVoter.php',
|
||||
'Rector\\Skipper\\Skipper\\SkipSkipper' => $baseDir . '/packages/Skipper/Skipper/SkipSkipper.php',
|
||||
'Rector\\Skipper\\Skipper\\Skipper' => $baseDir . '/packages/Skipper/Skipper/Skipper.php',
|
||||
'Rector\\StaticTypeMapper\\Contract\\PhpDocParser\\PhpDocTypeMapperInterface' => $baseDir . '/packages/StaticTypeMapper/Contract/PhpDocParser/PhpDocTypeMapperInterface.php',
|
||||
'Rector\\StaticTypeMapper\\Contract\\PhpParser\\PhpParserNodeMapperInterface' => $baseDir . '/packages/StaticTypeMapper/Contract/PhpParser/PhpParserNodeMapperInterface.php',
|
||||
'Rector\\StaticTypeMapper\\Mapper\\PhpParserNodeMapper' => $baseDir . '/packages/StaticTypeMapper/Mapper/PhpParserNodeMapper.php',
|
||||
|
|
2
vendor/composer/autoload_files.php
vendored
2
vendor/composer/autoload_files.php
vendored
|
@ -7,9 +7,9 @@ $baseDir = dirname($vendorDir);
|
|||
|
||||
return array(
|
||||
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
|
||||
'ad155f8f1cf0d418fe49e248db8c661b' => $vendorDir . '/react/promise/src/functions_include.php',
|
||||
'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
||||
'b6b991a57620e2fb6b2f66f03fe9ddc2' => $vendorDir . '/symfony/string/Resources/functions.php',
|
||||
'ad155f8f1cf0d418fe49e248db8c661b' => $vendorDir . '/react/promise/src/functions_include.php',
|
||||
'972fda704d680a3a53c68e34e193cb22' => $vendorDir . '/react/promise-timer/src/functions_include.php',
|
||||
'9b38cf48e83f5d8f60375221cd213eee' => $vendorDir . '/phpstan/phpstan/bootstrap.php',
|
||||
'2324d0e5cadd603331d27de142371f0b' => $vendorDir . '/symfony/contracts/Deprecation/function.php',
|
||||
|
|
1
vendor/composer/autoload_psr4.php
vendored
1
vendor/composer/autoload_psr4.php
vendored
|
@ -22,7 +22,6 @@ return array(
|
|||
'RectorPrefix202208\\Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'),
|
||||
'RectorPrefix202208\\Symplify\\SymplifyKernel\\' => array($vendorDir . '/symplify/symplify-kernel/src'),
|
||||
'RectorPrefix202208\\Symplify\\SmartFileSystem\\' => array($vendorDir . '/symplify/smart-file-system/src'),
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\' => array($vendorDir . '/symplify/skipper/src'),
|
||||
'RectorPrefix202208\\Symplify\\PackageBuilder\\' => array($vendorDir . '/symplify/package-builder/src'),
|
||||
'RectorPrefix202208\\Symplify\\EasyParallel\\' => array($vendorDir . '/symplify/easy-parallel/src'),
|
||||
'RectorPrefix202208\\Symplify\\AutowireArrayParameter\\' => array($vendorDir . '/symplify/autowire-array-parameter/src'),
|
||||
|
|
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 ComposerAutoloaderInitb496a15bdfc18f074819e8d555e3628c
|
||||
class ComposerAutoloaderInit0b84aa542f2b6aae334995f456d549cd
|
||||
{
|
||||
private static $loader;
|
||||
|
||||
|
@ -22,19 +22,19 @@ class ComposerAutoloaderInitb496a15bdfc18f074819e8d555e3628c
|
|||
return self::$loader;
|
||||
}
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInitb496a15bdfc18f074819e8d555e3628c', 'loadClassLoader'), true, true);
|
||||
spl_autoload_register(array('ComposerAutoloaderInit0b84aa542f2b6aae334995f456d549cd', 'loadClassLoader'), true, true);
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInitb496a15bdfc18f074819e8d555e3628c', 'loadClassLoader'));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInit0b84aa542f2b6aae334995f456d549cd', 'loadClassLoader'));
|
||||
|
||||
require __DIR__ . '/autoload_static.php';
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInitb496a15bdfc18f074819e8d555e3628c::getInitializer($loader));
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInit0b84aa542f2b6aae334995f456d549cd::getInitializer($loader));
|
||||
|
||||
$loader->setClassMapAuthoritative(true);
|
||||
$loader->register(true);
|
||||
|
||||
$includeFiles = \Composer\Autoload\ComposerStaticInitb496a15bdfc18f074819e8d555e3628c::$files;
|
||||
$includeFiles = \Composer\Autoload\ComposerStaticInit0b84aa542f2b6aae334995f456d549cd::$files;
|
||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
||||
composerRequireb496a15bdfc18f074819e8d555e3628c($fileIdentifier, $file);
|
||||
composerRequire0b84aa542f2b6aae334995f456d549cd($fileIdentifier, $file);
|
||||
}
|
||||
|
||||
return $loader;
|
||||
|
@ -46,7 +46,7 @@ class ComposerAutoloaderInitb496a15bdfc18f074819e8d555e3628c
|
|||
* @param string $file
|
||||
* @return void
|
||||
*/
|
||||
function composerRequireb496a15bdfc18f074819e8d555e3628c($fileIdentifier, $file)
|
||||
function composerRequire0b84aa542f2b6aae334995f456d549cd($fileIdentifier, $file)
|
||||
{
|
||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
||||
|
|
42
vendor/composer/autoload_static.php
vendored
42
vendor/composer/autoload_static.php
vendored
|
@ -4,13 +4,13 @@
|
|||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
class ComposerStaticInitb496a15bdfc18f074819e8d555e3628c
|
||||
class ComposerStaticInit0b84aa542f2b6aae334995f456d549cd
|
||||
{
|
||||
public static $files = array (
|
||||
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
|
||||
'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
|
||||
'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
||||
'b6b991a57620e2fb6b2f66f03fe9ddc2' => __DIR__ . '/..' . '/symfony/string/Resources/functions.php',
|
||||
'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
|
||||
'972fda704d680a3a53c68e34e193cb22' => __DIR__ . '/..' . '/react/promise-timer/src/functions_include.php',
|
||||
'9b38cf48e83f5d8f60375221cd213eee' => __DIR__ . '/..' . '/phpstan/phpstan/bootstrap.php',
|
||||
'2324d0e5cadd603331d27de142371f0b' => __DIR__ . '/..' . '/symfony/contracts/Deprecation/function.php',
|
||||
|
@ -39,7 +39,6 @@ class ComposerStaticInitb496a15bdfc18f074819e8d555e3628c
|
|||
'RectorPrefix202208\\Webmozart\\Assert\\' => 36,
|
||||
'RectorPrefix202208\\Symplify\\SymplifyKernel\\' => 43,
|
||||
'RectorPrefix202208\\Symplify\\SmartFileSystem\\' => 44,
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\' => 36,
|
||||
'RectorPrefix202208\\Symplify\\PackageBuilder\\' => 43,
|
||||
'RectorPrefix202208\\Symplify\\EasyParallel\\' => 41,
|
||||
'RectorPrefix202208\\Symplify\\AutowireArrayParameter\\' => 51,
|
||||
|
@ -146,10 +145,6 @@ class ComposerStaticInitb496a15bdfc18f074819e8d555e3628c
|
|||
array (
|
||||
0 => __DIR__ . '/..' . '/symplify/smart-file-system/src',
|
||||
),
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/symplify/skipper/src',
|
||||
),
|
||||
'RectorPrefix202208\\Symplify\\PackageBuilder\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/symplify/package-builder/src',
|
||||
|
@ -1338,22 +1333,6 @@ class ComposerStaticInitb496a15bdfc18f074819e8d555e3628c
|
|||
'RectorPrefix202208\\Symplify\\PackageBuilder\\ValueObject\\MethodName' => __DIR__ . '/..' . '/symplify/package-builder/src/ValueObject/MethodName.php',
|
||||
'RectorPrefix202208\\Symplify\\PackageBuilder\\ValueObject\\Option' => __DIR__ . '/..' . '/symplify/package-builder/src/ValueObject/Option.php',
|
||||
'RectorPrefix202208\\Symplify\\PackageBuilder\\Yaml\\ParametersMerger' => __DIR__ . '/..' . '/symplify/package-builder/src/Yaml/ParametersMerger.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\Contract\\SkipVoterInterface' => __DIR__ . '/..' . '/symplify/skipper/src/Contract/SkipVoterInterface.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\FileSystem\\FnMatchPathNormalizer' => __DIR__ . '/..' . '/symplify/skipper/src/FileSystem/FnMatchPathNormalizer.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\Matcher\\FileInfoMatcher' => __DIR__ . '/..' . '/symplify/skipper/src/Matcher/FileInfoMatcher.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\SkipCriteriaResolver\\SkippedClassAndCodesResolver' => __DIR__ . '/..' . '/symplify/skipper/src/SkipCriteriaResolver/SkippedClassAndCodesResolver.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\SkipCriteriaResolver\\SkippedClassResolver' => __DIR__ . '/..' . '/symplify/skipper/src/SkipCriteriaResolver/SkippedClassResolver.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\SkipCriteriaResolver\\SkippedMessagesResolver' => __DIR__ . '/..' . '/symplify/skipper/src/SkipCriteriaResolver/SkippedMessagesResolver.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\SkipCriteriaResolver\\SkippedPathsResolver' => __DIR__ . '/..' . '/symplify/skipper/src/SkipCriteriaResolver/SkippedPathsResolver.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\SkipVoter\\ClassAndCodeSkipVoter' => __DIR__ . '/..' . '/symplify/skipper/src/SkipVoter/ClassAndCodeSkipVoter.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\SkipVoter\\ClassSkipVoter' => __DIR__ . '/..' . '/symplify/skipper/src/SkipVoter/ClassSkipVoter.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\SkipVoter\\MessageSkipVoter' => __DIR__ . '/..' . '/symplify/skipper/src/SkipVoter/MessageSkipVoter.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\SkipVoter\\PathSkipVoter' => __DIR__ . '/..' . '/symplify/skipper/src/SkipVoter/PathSkipVoter.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\Skipper\\OnlySkipper' => __DIR__ . '/..' . '/symplify/skipper/src/Skipper/OnlySkipper.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\Skipper\\SkipSkipper' => __DIR__ . '/..' . '/symplify/skipper/src/Skipper/SkipSkipper.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\Skipper\\Skipper' => __DIR__ . '/..' . '/symplify/skipper/src/Skipper/Skipper.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\ValueObject\\Option' => __DIR__ . '/..' . '/symplify/skipper/src/ValueObject/Option.php',
|
||||
'RectorPrefix202208\\Symplify\\Skipper\\ValueObject\\SkipperConfig' => __DIR__ . '/..' . '/symplify/skipper/src/ValueObject/SkipperConfig.php',
|
||||
'RectorPrefix202208\\Symplify\\SmartFileSystem\\Exception\\DirectoryNotFoundException' => __DIR__ . '/..' . '/symplify/smart-file-system/src/Exception/DirectoryNotFoundException.php',
|
||||
'RectorPrefix202208\\Symplify\\SmartFileSystem\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/symplify/smart-file-system/src/Exception/FileNotFoundException.php',
|
||||
'RectorPrefix202208\\Symplify\\SmartFileSystem\\FileSystemFilter' => __DIR__ . '/..' . '/symplify/smart-file-system/src/FileSystemFilter.php',
|
||||
|
@ -2752,6 +2731,17 @@ class ComposerStaticInitb496a15bdfc18f074819e8d555e3628c
|
|||
'Rector\\Set\\ValueObject\\DowngradeSetList' => __DIR__ . '/..' . '/rector/rector-downgrade-php/src/Set/ValueObject/DowngradeSetList.php',
|
||||
'Rector\\Set\\ValueObject\\LevelSetList' => __DIR__ . '/../..' . '/packages/Set/ValueObject/LevelSetList.php',
|
||||
'Rector\\Set\\ValueObject\\SetList' => __DIR__ . '/../..' . '/packages/Set/ValueObject/SetList.php',
|
||||
'Rector\\Skipper\\Contract\\SkipVoterInterface' => __DIR__ . '/../..' . '/packages/Skipper/Contract/SkipVoterInterface.php',
|
||||
'Rector\\Skipper\\Enum\\AsteriskMatch' => __DIR__ . '/../..' . '/packages/Skipper/Enum/AsteriskMatch.php',
|
||||
'Rector\\Skipper\\FileSystem\\FnMatchPathNormalizer' => __DIR__ . '/../..' . '/packages/Skipper/FileSystem/FnMatchPathNormalizer.php',
|
||||
'Rector\\Skipper\\Fnmatcher' => __DIR__ . '/../..' . '/packages/Skipper/Fnmatcher.php',
|
||||
'Rector\\Skipper\\Matcher\\FileInfoMatcher' => __DIR__ . '/../..' . '/packages/Skipper/Matcher/FileInfoMatcher.php',
|
||||
'Rector\\Skipper\\SkipCriteriaResolver\\SkippedClassResolver' => __DIR__ . '/../..' . '/packages/Skipper/SkipCriteriaResolver/SkippedClassResolver.php',
|
||||
'Rector\\Skipper\\SkipCriteriaResolver\\SkippedPathsResolver' => __DIR__ . '/../..' . '/packages/Skipper/SkipCriteriaResolver/SkippedPathsResolver.php',
|
||||
'Rector\\Skipper\\SkipVoter\\ClassSkipVoter' => __DIR__ . '/../..' . '/packages/Skipper/SkipVoter/ClassSkipVoter.php',
|
||||
'Rector\\Skipper\\SkipVoter\\PathSkipVoter' => __DIR__ . '/../..' . '/packages/Skipper/SkipVoter/PathSkipVoter.php',
|
||||
'Rector\\Skipper\\Skipper\\SkipSkipper' => __DIR__ . '/../..' . '/packages/Skipper/Skipper/SkipSkipper.php',
|
||||
'Rector\\Skipper\\Skipper\\Skipper' => __DIR__ . '/../..' . '/packages/Skipper/Skipper/Skipper.php',
|
||||
'Rector\\StaticTypeMapper\\Contract\\PhpDocParser\\PhpDocTypeMapperInterface' => __DIR__ . '/../..' . '/packages/StaticTypeMapper/Contract/PhpDocParser/PhpDocTypeMapperInterface.php',
|
||||
'Rector\\StaticTypeMapper\\Contract\\PhpParser\\PhpParserNodeMapperInterface' => __DIR__ . '/../..' . '/packages/StaticTypeMapper/Contract/PhpParser/PhpParserNodeMapperInterface.php',
|
||||
'Rector\\StaticTypeMapper\\Mapper\\PhpParserNodeMapper' => __DIR__ . '/../..' . '/packages/StaticTypeMapper/Mapper/PhpParserNodeMapper.php',
|
||||
|
@ -3148,9 +3138,9 @@ class ComposerStaticInitb496a15bdfc18f074819e8d555e3628c
|
|||
public static function getInitializer(ClassLoader $loader)
|
||||
{
|
||||
return \Closure::bind(function () use ($loader) {
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInitb496a15bdfc18f074819e8d555e3628c::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInitb496a15bdfc18f074819e8d555e3628c::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInitb496a15bdfc18f074819e8d555e3628c::$classMap;
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInit0b84aa542f2b6aae334995f456d549cd::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInit0b84aa542f2b6aae334995f456d549cd::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInit0b84aa542f2b6aae334995f456d549cd::$classMap;
|
||||
|
||||
}, null, ClassLoader::class);
|
||||
}
|
||||
|
|
118
vendor/composer/installed.json
vendored
118
vendor/composer/installed.json
vendored
|
@ -3113,12 +3113,12 @@
|
|||
"source": {
|
||||
"type": "git",
|
||||
"url": "https:\/\/github.com\/symplify\/autowire-array-parameter.git",
|
||||
"reference": "c5865d56cb3976862815c6aa49c7ba7ff16c7509"
|
||||
"reference": "f4896e243ae465a278e254b0213fc50ef4f33b5a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https:\/\/api.github.com\/repos\/symplify\/autowire-array-parameter\/zipball\/c5865d56cb3976862815c6aa49c7ba7ff16c7509",
|
||||
"reference": "c5865d56cb3976862815c6aa49c7ba7ff16c7509",
|
||||
"url": "https:\/\/api.github.com\/repos\/symplify\/autowire-array-parameter\/zipball\/f4896e243ae465a278e254b0213fc50ef4f33b5a",
|
||||
"reference": "f4896e243ae465a278e254b0213fc50ef4f33b5a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -3141,7 +3141,6 @@
|
|||
"symplify\/phpstan-rules": "<11.1.6",
|
||||
"symplify\/rule-doc-generator": "<11.1.6",
|
||||
"symplify\/rule-doc-generator-contracts": "<11.1.6",
|
||||
"symplify\/skipper": "<11.1.6",
|
||||
"symplify\/smart-file-system": "<11.1.6",
|
||||
"symplify\/symfony-static-dumper": "<11.1.6",
|
||||
"symplify\/symplify-kernel": "<11.1.6",
|
||||
|
@ -3150,7 +3149,7 @@
|
|||
"require-dev": {
|
||||
"phpunit\/phpunit": "^9.5.23"
|
||||
},
|
||||
"time": "2022-08-31T08:19:28+00:00",
|
||||
"time": "2022-08-31T14:54:01+00:00",
|
||||
"default-branch": true,
|
||||
"type": "library",
|
||||
"extra": {
|
||||
|
@ -3262,12 +3261,12 @@
|
|||
"source": {
|
||||
"type": "git",
|
||||
"url": "https:\/\/github.com\/symplify\/package-builder.git",
|
||||
"reference": "87916f237343c7adca511e4b8dbb5fd928f0b8e5"
|
||||
"reference": "63ad966820ad00573769b472ad6e0948c7fd8c78"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https:\/\/api.github.com\/repos\/symplify\/package-builder\/zipball\/87916f237343c7adca511e4b8dbb5fd928f0b8e5",
|
||||
"reference": "87916f237343c7adca511e4b8dbb5fd928f0b8e5",
|
||||
"url": "https:\/\/api.github.com\/repos\/symplify\/package-builder\/zipball\/63ad966820ad00573769b472ad6e0948c7fd8c78",
|
||||
"reference": "63ad966820ad00573769b472ad6e0948c7fd8c78",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -3295,7 +3294,6 @@
|
|||
"symplify\/phpstan-rules": "<11.1.6",
|
||||
"symplify\/rule-doc-generator": "<11.1.6",
|
||||
"symplify\/rule-doc-generator-contracts": "<11.1.6",
|
||||
"symplify\/skipper": "<11.1.6",
|
||||
"symplify\/smart-file-system": "<11.1.6",
|
||||
"symplify\/symfony-static-dumper": "<11.1.6",
|
||||
"symplify\/vendor-patches": "<11.1.6"
|
||||
|
@ -3303,7 +3301,7 @@
|
|||
"require-dev": {
|
||||
"phpunit\/phpunit": "^9.5.23"
|
||||
},
|
||||
"time": "2022-08-31T08:19:28+00:00",
|
||||
"time": "2022-08-31T14:54:02+00:00",
|
||||
"default-branch": true,
|
||||
"type": "library",
|
||||
"extra": {
|
||||
|
@ -3410,86 +3408,6 @@
|
|||
],
|
||||
"install-path": "..\/symplify\/rule-doc-generator-contracts"
|
||||
},
|
||||
{
|
||||
"name": "symplify\/skipper",
|
||||
"version": "11.1.6",
|
||||
"version_normalized": "11.1.6.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https:\/\/github.com\/symplify\/skipper.git",
|
||||
"reference": "ca7e882ac3b0ec7c2967d12578bc2f8953251182"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https:\/\/api.github.com\/repos\/symplify\/skipper\/zipball\/ca7e882ac3b0ec7c2967d12578bc2f8953251182",
|
||||
"reference": "ca7e882ac3b0ec7c2967d12578bc2f8953251182",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"nette\/utils": "^3.2",
|
||||
"php": ">=8.0",
|
||||
"symfony\/config": "^6.0",
|
||||
"symfony\/dependency-injection": "^6.0",
|
||||
"symfony\/filesystem": "^6.0",
|
||||
"symfony\/finder": "^6.0",
|
||||
"symplify\/package-builder": "^11.1.6",
|
||||
"symplify\/smart-file-system": "^11.1.6",
|
||||
"symplify\/symplify-kernel": "^11.1.6"
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/autowire-array-parameter": "<11.1.6",
|
||||
"symplify\/coding-standard": "<11.1.6",
|
||||
"symplify\/composer-json-manipulator": "<11.1.6",
|
||||
"symplify\/config-transformer": "<11.1.6",
|
||||
"symplify\/easy-ci": "<11.1.6",
|
||||
"symplify\/easy-coding-standard": "<11.1.6",
|
||||
"symplify\/easy-parallel": "<11.1.6",
|
||||
"symplify\/easy-testing": "<11.1.6",
|
||||
"symplify\/monorepo-builder": "<11.1.6",
|
||||
"symplify\/php-config-printer": "<11.1.6",
|
||||
"symplify\/phpstan-extensions": "<11.1.6",
|
||||
"symplify\/phpstan-rules": "<11.1.6",
|
||||
"symplify\/rule-doc-generator": "<11.1.6",
|
||||
"symplify\/rule-doc-generator-contracts": "<11.1.6",
|
||||
"symplify\/symfony-static-dumper": "<11.1.6",
|
||||
"symplify\/vendor-patches": "<11.1.6"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit\/phpunit": "^9.5.23"
|
||||
},
|
||||
"time": "2022-08-31T08:18:20+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "11.2-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"RectorPrefix202208\\Symplify\\Skipper\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https:\/\/packagist.org\/downloads\/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "Skip files by rule class, directory, file or fnmatch",
|
||||
"support": {
|
||||
"source": "https:\/\/github.com\/symplify\/skipper\/tree\/11.1.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https:\/\/www.paypal.me\/rectorphp",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https:\/\/github.com\/tomasvotruba",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"install-path": "..\/symplify\/skipper"
|
||||
},
|
||||
{
|
||||
"name": "symplify\/smart-file-system",
|
||||
"version": "dev-main",
|
||||
|
@ -3497,12 +3415,12 @@
|
|||
"source": {
|
||||
"type": "git",
|
||||
"url": "https:\/\/github.com\/symplify\/smart-file-system.git",
|
||||
"reference": "e6920e532c203243b0f40ce62c150a0f18c38248"
|
||||
"reference": "1ca346104fae0e9a25a87af34afa8f27613bf924"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https:\/\/api.github.com\/repos\/symplify\/smart-file-system\/zipball\/e6920e532c203243b0f40ce62c150a0f18c38248",
|
||||
"reference": "e6920e532c203243b0f40ce62c150a0f18c38248",
|
||||
"url": "https:\/\/api.github.com\/repos\/symplify\/smart-file-system\/zipball\/1ca346104fae0e9a25a87af34afa8f27613bf924",
|
||||
"reference": "1ca346104fae0e9a25a87af34afa8f27613bf924",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -3527,7 +3445,6 @@
|
|||
"symplify\/phpstan-rules": "<11.1.6",
|
||||
"symplify\/rule-doc-generator": "<11.1.6",
|
||||
"symplify\/rule-doc-generator-contracts": "<11.1.6",
|
||||
"symplify\/skipper": "<11.1.6",
|
||||
"symplify\/symfony-static-dumper": "<11.1.6",
|
||||
"symplify\/symplify-kernel": "<11.1.6",
|
||||
"symplify\/vendor-patches": "<11.1.6"
|
||||
|
@ -3536,7 +3453,7 @@
|
|||
"nette\/finder": "^2.5.3",
|
||||
"phpunit\/phpunit": "^9.5.23"
|
||||
},
|
||||
"time": "2022-08-31T08:16:44+00:00",
|
||||
"time": "2022-08-31T14:54:16+00:00",
|
||||
"default-branch": true,
|
||||
"type": "library",
|
||||
"extra": {
|
||||
|
@ -3556,7 +3473,7 @@
|
|||
],
|
||||
"description": "Sanitized FileInfo with safe getRealPath() and other handy methods",
|
||||
"support": {
|
||||
"source": "https:\/\/github.com\/symplify\/smart-file-system\/tree\/11.1.6"
|
||||
"source": "https:\/\/github.com\/symplify\/smart-file-system\/tree\/main"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -3577,12 +3494,12 @@
|
|||
"source": {
|
||||
"type": "git",
|
||||
"url": "https:\/\/github.com\/symplify\/symplify-kernel.git",
|
||||
"reference": "f2946844f34c785f6c4920edc50bcfdd07862562"
|
||||
"reference": "26b1e948bc1369859548b617640980d22ec62b20"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https:\/\/api.github.com\/repos\/symplify\/symplify-kernel\/zipball\/f2946844f34c785f6c4920edc50bcfdd07862562",
|
||||
"reference": "f2946844f34c785f6c4920edc50bcfdd07862562",
|
||||
"url": "https:\/\/api.github.com\/repos\/symplify\/symplify-kernel\/zipball\/26b1e948bc1369859548b617640980d22ec62b20",
|
||||
"reference": "26b1e948bc1369859548b617640980d22ec62b20",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -3607,14 +3524,13 @@
|
|||
"symplify\/phpstan-rules": "<11.1.6",
|
||||
"symplify\/rule-doc-generator": "<11.1.6",
|
||||
"symplify\/rule-doc-generator-contracts": "<11.1.6",
|
||||
"symplify\/skipper": "<11.1.6",
|
||||
"symplify\/symfony-static-dumper": "<11.1.6",
|
||||
"symplify\/vendor-patches": "<11.1.6"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit\/phpunit": "^9.5.23"
|
||||
},
|
||||
"time": "2022-08-31T09:28:54+00:00",
|
||||
"time": "2022-08-31T14:54:06+00:00",
|
||||
"default-branch": true,
|
||||
"type": "library",
|
||||
"extra": {
|
||||
|
|
2
vendor/composer/installed.php
vendored
2
vendor/composer/installed.php
vendored
File diff suppressed because one or more lines are too long
|
@ -36,7 +36,6 @@
|
|||
"symplify\/phpstan-extensions": "<11.1.6",
|
||||
"symplify\/rule-doc-generator": "<11.1.6",
|
||||
"symplify\/vendor-patches": "<11.1.6",
|
||||
"symplify\/skipper": "<11.1.6",
|
||||
"symplify\/smart-file-system": "<11.1.6",
|
||||
"symplify\/symfony-static-dumper": "<11.1.6",
|
||||
"symplify\/symplify-kernel": "<11.1.6",
|
||||
|
|
|
@ -40,7 +40,6 @@
|
|||
"symplify\/phpstan-extensions": "<11.1.6",
|
||||
"symplify\/rule-doc-generator": "<11.1.6",
|
||||
"symplify\/vendor-patches": "<11.1.6",
|
||||
"symplify\/skipper": "<11.1.6",
|
||||
"symplify\/smart-file-system": "<11.1.6",
|
||||
"symplify\/symfony-static-dumper": "<11.1.6",
|
||||
"symplify\/monorepo-builder": "<11.1.6",
|
||||
|
|
25
vendor/symplify/skipper/LICENSE
vendored
25
vendor/symplify/skipper/LICENSE
vendored
|
@ -1,25 +0,0 @@
|
|||
The MIT License
|
||||
---------------
|
||||
|
||||
Copyright (c) 2020 Tomas Votruba (https://tomasvotruba.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
54
vendor/symplify/skipper/composer.json
vendored
54
vendor/symplify/skipper/composer.json
vendored
|
@ -1,54 +0,0 @@
|
|||
{
|
||||
"name": "symplify\/skipper",
|
||||
"description": "Skip files by rule class, directory, file or fnmatch",
|
||||
"license": "MIT",
|
||||
"require": {
|
||||
"php": ">=8.0",
|
||||
"nette\/utils": "^3.2",
|
||||
"symfony\/config": "^6.0",
|
||||
"symfony\/dependency-injection": "^6.0",
|
||||
"symfony\/finder": "^6.0",
|
||||
"symfony\/filesystem": "^6.0",
|
||||
"symplify\/package-builder": "^11.1.6",
|
||||
"symplify\/symplify-kernel": "^11.1.6",
|
||||
"symplify\/smart-file-system": "^11.1.6"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit\/phpunit": "^9.5.23"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"RectorPrefix202208\\Symplify\\Skipper\\": "src"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"RectorPrefix202208\\Symplify\\Skipper\\Tests\\": "tests"
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "11.2-dev"
|
||||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/composer-json-manipulator": "<11.1.6",
|
||||
"symplify\/easy-coding-standard": "<11.1.6",
|
||||
"symplify\/phpstan-rules": "<11.1.6",
|
||||
"symplify\/easy-testing": "<11.1.6",
|
||||
"symplify\/rule-doc-generator-contracts": "<11.1.6",
|
||||
"symplify\/php-config-printer": "<11.1.6",
|
||||
"symplify\/autowire-array-parameter": "<11.1.6",
|
||||
"symplify\/phpstan-extensions": "<11.1.6",
|
||||
"symplify\/rule-doc-generator": "<11.1.6",
|
||||
"symplify\/vendor-patches": "<11.1.6",
|
||||
"symplify\/symfony-static-dumper": "<11.1.6",
|
||||
"symplify\/monorepo-builder": "<11.1.6",
|
||||
"symplify\/config-transformer": "<11.1.6",
|
||||
"symplify\/easy-ci": "<11.1.6",
|
||||
"symplify\/coding-standard": "<11.1.6",
|
||||
"symplify\/easy-parallel": "<11.1.6"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
}
|
19
vendor/symplify/skipper/config/config.php
vendored
19
vendor/symplify/skipper/config/config.php
vendored
|
@ -1,19 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix202208;
|
||||
|
||||
use RectorPrefix202208\Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
|
||||
use RectorPrefix202208\Symplify\PackageBuilder\Reflection\ClassLikeExistenceChecker;
|
||||
use RectorPrefix202208\Symplify\Skipper\ValueObject\Option;
|
||||
use RectorPrefix202208\Symplify\SmartFileSystem\Normalizer\PathNormalizer;
|
||||
return static function (ContainerConfigurator $containerConfigurator) : void {
|
||||
$parameters = $containerConfigurator->parameters();
|
||||
$parameters->set(Option::SKIP, []);
|
||||
$parameters->set(Option::ONLY, []);
|
||||
$services = $containerConfigurator->services();
|
||||
$services->defaults()->public()->autowire();
|
||||
$services->load('RectorPrefix202208\Symplify\\Skipper\\', __DIR__ . '/../src')->exclude([__DIR__ . '/../src/ValueObject']);
|
||||
$services->set(ClassLikeExistenceChecker::class);
|
||||
$services->set(PathNormalizer::class);
|
||||
};
|
|
@ -1,40 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix202208\Symplify\Skipper\FileSystem;
|
||||
|
||||
use RectorPrefix202208\Nette\Utils\Strings;
|
||||
/**
|
||||
* @see \Symplify\Skipper\Tests\FileSystem\FnMatchPathNormalizerTest
|
||||
*/
|
||||
final class FnMatchPathNormalizer
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
* @see https://regex101.com/r/ZB2dFV/2
|
||||
*/
|
||||
private const ONLY_ENDS_WITH_ASTERISK_REGEX = '#^[^*](.*?)\\*$#';
|
||||
/**
|
||||
* @var string
|
||||
* @see https://regex101.com/r/aVUDjM/2
|
||||
*/
|
||||
private const ONLY_STARTS_WITH_ASTERISK_REGEX = '#^\\*(.*?)[^*]$#';
|
||||
public function normalizeForFnmatch(string $path) : string
|
||||
{
|
||||
// ends with *
|
||||
if (Strings::match($path, self::ONLY_ENDS_WITH_ASTERISK_REGEX)) {
|
||||
return '*' . $path;
|
||||
}
|
||||
// starts with *
|
||||
if (Strings::match($path, self::ONLY_STARTS_WITH_ASTERISK_REGEX)) {
|
||||
return $path . '*';
|
||||
}
|
||||
if (\strpos($path, '..') !== \false) {
|
||||
$path = \realpath($path);
|
||||
if ($path === \false) {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
return $path;
|
||||
}
|
||||
}
|
|
@ -1,51 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix202208\Symplify\Skipper\Matcher;
|
||||
|
||||
use RectorPrefix202208\Symplify\Skipper\FileSystem\FnMatchPathNormalizer;
|
||||
use Symplify\SmartFileSystem\SmartFileInfo;
|
||||
final class FileInfoMatcher
|
||||
{
|
||||
/**
|
||||
* @var \Symplify\Skipper\FileSystem\FnMatchPathNormalizer
|
||||
*/
|
||||
private $fnMatchPathNormalizer;
|
||||
public function __construct(FnMatchPathNormalizer $fnMatchPathNormalizer)
|
||||
{
|
||||
$this->fnMatchPathNormalizer = $fnMatchPathNormalizer;
|
||||
}
|
||||
/**
|
||||
* @param string[] $filePatterns
|
||||
*/
|
||||
public function doesFileInfoMatchPatterns(SmartFileInfo $smartFileInfo, array $filePatterns) : bool
|
||||
{
|
||||
foreach ($filePatterns as $filePattern) {
|
||||
if ($this->doesFileInfoMatchPattern($smartFileInfo, $filePattern)) {
|
||||
return \true;
|
||||
}
|
||||
}
|
||||
return \false;
|
||||
}
|
||||
/**
|
||||
* Supports both relative and absolute $file path. They differ for PHP-CS-Fixer and PHP_CodeSniffer.
|
||||
*/
|
||||
private function doesFileInfoMatchPattern(SmartFileInfo $smartFileInfo, string $ignoredPath) : bool
|
||||
{
|
||||
// in ecs.php, the path can be absolute
|
||||
if ($smartFileInfo->getRealPath() === $ignoredPath) {
|
||||
return \true;
|
||||
}
|
||||
$ignoredPath = $this->fnMatchPathNormalizer->normalizeForFnmatch($ignoredPath);
|
||||
if ($ignoredPath === '') {
|
||||
return \false;
|
||||
}
|
||||
if ($smartFileInfo->startsWith($ignoredPath)) {
|
||||
return \true;
|
||||
}
|
||||
if ($smartFileInfo->endsWith($ignoredPath)) {
|
||||
return \true;
|
||||
}
|
||||
return $smartFileInfo->doesFnmatch($ignoredPath);
|
||||
}
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix202208\Symplify\Skipper\SkipCriteriaResolver;
|
||||
|
||||
use RectorPrefix202208\Symplify\PackageBuilder\Parameter\ParameterProvider;
|
||||
use RectorPrefix202208\Symplify\Skipper\ValueObject\Option;
|
||||
final class SkippedClassAndCodesResolver
|
||||
{
|
||||
/**
|
||||
* @var array<string, string[]|null>
|
||||
*/
|
||||
private $skippedClassAndCodes = [];
|
||||
/**
|
||||
* @var \Symplify\PackageBuilder\Parameter\ParameterProvider
|
||||
*/
|
||||
private $parameterProvider;
|
||||
public function __construct(ParameterProvider $parameterProvider)
|
||||
{
|
||||
$this->parameterProvider = $parameterProvider;
|
||||
}
|
||||
/**
|
||||
* @return array<string, string[]|null>
|
||||
*/
|
||||
public function resolve() : array
|
||||
{
|
||||
if ($this->skippedClassAndCodes !== []) {
|
||||
return $this->skippedClassAndCodes;
|
||||
}
|
||||
$skip = $this->parameterProvider->provideArrayParameter(Option::SKIP);
|
||||
foreach ($skip as $key => $value) {
|
||||
// e.g. [SomeClass::class] → shift values to [SomeClass::class => null]
|
||||
if (\is_int($key)) {
|
||||
$key = $value;
|
||||
$value = null;
|
||||
}
|
||||
if (\substr_count($key, '.') !== 1) {
|
||||
continue;
|
||||
}
|
||||
$this->skippedClassAndCodes[$key] = $value;
|
||||
}
|
||||
return $this->skippedClassAndCodes;
|
||||
}
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix202208\Symplify\Skipper\SkipCriteriaResolver;
|
||||
|
||||
use RectorPrefix202208\Symplify\PackageBuilder\Parameter\ParameterProvider;
|
||||
use RectorPrefix202208\Symplify\Skipper\ValueObject\Option;
|
||||
final class SkippedMessagesResolver
|
||||
{
|
||||
/**
|
||||
* @var array<string, string[]|null>
|
||||
*/
|
||||
private $skippedMessages = [];
|
||||
/**
|
||||
* @var \Symplify\PackageBuilder\Parameter\ParameterProvider
|
||||
*/
|
||||
private $parameterProvider;
|
||||
public function __construct(ParameterProvider $parameterProvider)
|
||||
{
|
||||
$this->parameterProvider = $parameterProvider;
|
||||
}
|
||||
/**
|
||||
* @return array<string, string[]|null>
|
||||
*/
|
||||
public function resolve() : array
|
||||
{
|
||||
if ($this->skippedMessages !== []) {
|
||||
return $this->skippedMessages;
|
||||
}
|
||||
$skip = $this->parameterProvider->provideArrayParameter(Option::SKIP);
|
||||
foreach ($skip as $key => $value) {
|
||||
// e.g. [SomeClass::class] → shift values to [SomeClass::class => null]
|
||||
if (\is_int($key)) {
|
||||
$key = $value;
|
||||
$value = null;
|
||||
}
|
||||
if (!\is_string($key)) {
|
||||
continue;
|
||||
}
|
||||
if (\substr_count($key, ' ') === 0) {
|
||||
continue;
|
||||
}
|
||||
$this->skippedMessages[$key] = $value;
|
||||
}
|
||||
return $this->skippedMessages;
|
||||
}
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix202208\Symplify\Skipper\SkipVoter;
|
||||
|
||||
use RectorPrefix202208\Symplify\Skipper\Contract\SkipVoterInterface;
|
||||
use RectorPrefix202208\Symplify\Skipper\Matcher\FileInfoMatcher;
|
||||
use RectorPrefix202208\Symplify\Skipper\SkipCriteriaResolver\SkippedClassAndCodesResolver;
|
||||
use Symplify\SmartFileSystem\SmartFileInfo;
|
||||
/**
|
||||
* Matching class and code, e.g. App\Category\ArraySniff.SomeCode
|
||||
*/
|
||||
final class ClassAndCodeSkipVoter implements SkipVoterInterface
|
||||
{
|
||||
/**
|
||||
* @var \Symplify\Skipper\SkipCriteriaResolver\SkippedClassAndCodesResolver
|
||||
*/
|
||||
private $skippedClassAndCodesResolver;
|
||||
/**
|
||||
* @var \Symplify\Skipper\Matcher\FileInfoMatcher
|
||||
*/
|
||||
private $fileInfoMatcher;
|
||||
public function __construct(SkippedClassAndCodesResolver $skippedClassAndCodesResolver, FileInfoMatcher $fileInfoMatcher)
|
||||
{
|
||||
$this->skippedClassAndCodesResolver = $skippedClassAndCodesResolver;
|
||||
$this->fileInfoMatcher = $fileInfoMatcher;
|
||||
}
|
||||
/**
|
||||
* @param string|object $element
|
||||
*/
|
||||
public function match($element) : bool
|
||||
{
|
||||
if (!\is_string($element)) {
|
||||
return \false;
|
||||
}
|
||||
return \substr_count($element, '.') === 1;
|
||||
}
|
||||
/**
|
||||
* @param string|object $element
|
||||
*/
|
||||
public function shouldSkip($element, SmartFileInfo $smartFileInfo) : bool
|
||||
{
|
||||
if (\is_object($element)) {
|
||||
return \false;
|
||||
}
|
||||
$skippedClassAndCodes = $this->skippedClassAndCodesResolver->resolve();
|
||||
if (!\array_key_exists($element, $skippedClassAndCodes)) {
|
||||
return \false;
|
||||
}
|
||||
// skip regardless the path
|
||||
$skippedPaths = $skippedClassAndCodes[$element];
|
||||
if ($skippedPaths === null) {
|
||||
return \true;
|
||||
}
|
||||
return $this->fileInfoMatcher->doesFileInfoMatchPatterns($smartFileInfo, $skippedPaths);
|
||||
}
|
||||
}
|
|
@ -1,67 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix202208\Symplify\Skipper\SkipVoter;
|
||||
|
||||
use RectorPrefix202208\Symplify\PackageBuilder\Parameter\ParameterProvider;
|
||||
use RectorPrefix202208\Symplify\PackageBuilder\Reflection\ClassLikeExistenceChecker;
|
||||
use RectorPrefix202208\Symplify\Skipper\Contract\SkipVoterInterface;
|
||||
use RectorPrefix202208\Symplify\Skipper\SkipCriteriaResolver\SkippedClassResolver;
|
||||
use RectorPrefix202208\Symplify\Skipper\Skipper\OnlySkipper;
|
||||
use RectorPrefix202208\Symplify\Skipper\Skipper\SkipSkipper;
|
||||
use RectorPrefix202208\Symplify\Skipper\ValueObject\Option;
|
||||
use Symplify\SmartFileSystem\SmartFileInfo;
|
||||
final class ClassSkipVoter implements SkipVoterInterface
|
||||
{
|
||||
/**
|
||||
* @var \Symplify\PackageBuilder\Reflection\ClassLikeExistenceChecker
|
||||
*/
|
||||
private $classLikeExistenceChecker;
|
||||
/**
|
||||
* @var \Symplify\PackageBuilder\Parameter\ParameterProvider
|
||||
*/
|
||||
private $parameterProvider;
|
||||
/**
|
||||
* @var \Symplify\Skipper\Skipper\SkipSkipper
|
||||
*/
|
||||
private $skipSkipper;
|
||||
/**
|
||||
* @var \Symplify\Skipper\Skipper\OnlySkipper
|
||||
*/
|
||||
private $onlySkipper;
|
||||
/**
|
||||
* @var \Symplify\Skipper\SkipCriteriaResolver\SkippedClassResolver
|
||||
*/
|
||||
private $skippedClassResolver;
|
||||
public function __construct(ClassLikeExistenceChecker $classLikeExistenceChecker, ParameterProvider $parameterProvider, SkipSkipper $skipSkipper, OnlySkipper $onlySkipper, SkippedClassResolver $skippedClassResolver)
|
||||
{
|
||||
$this->classLikeExistenceChecker = $classLikeExistenceChecker;
|
||||
$this->parameterProvider = $parameterProvider;
|
||||
$this->skipSkipper = $skipSkipper;
|
||||
$this->onlySkipper = $onlySkipper;
|
||||
$this->skippedClassResolver = $skippedClassResolver;
|
||||
}
|
||||
/**
|
||||
* @param string|object $element
|
||||
*/
|
||||
public function match($element) : bool
|
||||
{
|
||||
if (\is_object($element)) {
|
||||
return \true;
|
||||
}
|
||||
return $this->classLikeExistenceChecker->doesClassLikeExist($element);
|
||||
}
|
||||
/**
|
||||
* @param string|object $element
|
||||
*/
|
||||
public function shouldSkip($element, SmartFileInfo $smartFileInfo) : bool
|
||||
{
|
||||
$only = $this->parameterProvider->provideArrayParameter(Option::ONLY);
|
||||
$doesMatchOnly = $this->onlySkipper->doesMatchOnly($element, $smartFileInfo, $only);
|
||||
if (\is_bool($doesMatchOnly)) {
|
||||
return $doesMatchOnly;
|
||||
}
|
||||
$skippedClasses = $this->skippedClassResolver->resolve();
|
||||
return $this->skipSkipper->doesMatchSkip($element, $smartFileInfo, $skippedClasses);
|
||||
}
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix202208\Symplify\Skipper\SkipVoter;
|
||||
|
||||
use RectorPrefix202208\Symplify\Skipper\Contract\SkipVoterInterface;
|
||||
use RectorPrefix202208\Symplify\Skipper\Matcher\FileInfoMatcher;
|
||||
use RectorPrefix202208\Symplify\Skipper\SkipCriteriaResolver\SkippedMessagesResolver;
|
||||
use Symplify\SmartFileSystem\SmartFileInfo;
|
||||
final class MessageSkipVoter implements SkipVoterInterface
|
||||
{
|
||||
/**
|
||||
* @var \Symplify\Skipper\SkipCriteriaResolver\SkippedMessagesResolver
|
||||
*/
|
||||
private $skippedMessagesResolver;
|
||||
/**
|
||||
* @var \Symplify\Skipper\Matcher\FileInfoMatcher
|
||||
*/
|
||||
private $fileInfoMatcher;
|
||||
public function __construct(SkippedMessagesResolver $skippedMessagesResolver, FileInfoMatcher $fileInfoMatcher)
|
||||
{
|
||||
$this->skippedMessagesResolver = $skippedMessagesResolver;
|
||||
$this->fileInfoMatcher = $fileInfoMatcher;
|
||||
}
|
||||
/**
|
||||
* @param string|object $element
|
||||
*/
|
||||
public function match($element) : bool
|
||||
{
|
||||
if (\is_object($element)) {
|
||||
return \false;
|
||||
}
|
||||
return \substr_count($element, ' ') > 0;
|
||||
}
|
||||
/**
|
||||
* @param string|object $element
|
||||
*/
|
||||
public function shouldSkip($element, SmartFileInfo $smartFileInfo) : bool
|
||||
{
|
||||
if (\is_object($element)) {
|
||||
return \false;
|
||||
}
|
||||
$skippedMessages = $this->skippedMessagesResolver->resolve();
|
||||
if (!\array_key_exists($element, $skippedMessages)) {
|
||||
return \false;
|
||||
}
|
||||
// skip regardless the path
|
||||
$skippedPaths = $skippedMessages[$element];
|
||||
if ($skippedPaths === null) {
|
||||
return \true;
|
||||
}
|
||||
return $this->fileInfoMatcher->doesFileInfoMatchPatterns($smartFileInfo, $skippedPaths);
|
||||
}
|
||||
}
|
|
@ -1,43 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix202208\Symplify\Skipper\Skipper;
|
||||
|
||||
use RectorPrefix202208\Symplify\Skipper\Matcher\FileInfoMatcher;
|
||||
use Symplify\SmartFileSystem\SmartFileInfo;
|
||||
/**
|
||||
* @see \Symplify\Skipper\Tests\Skipper\Only\OnlySkipperTest
|
||||
*/
|
||||
final class OnlySkipper
|
||||
{
|
||||
/**
|
||||
* @var \Symplify\Skipper\Matcher\FileInfoMatcher
|
||||
*/
|
||||
private $fileInfoMatcher;
|
||||
public function __construct(FileInfoMatcher $fileInfoMatcher)
|
||||
{
|
||||
$this->fileInfoMatcher = $fileInfoMatcher;
|
||||
}
|
||||
/**
|
||||
* @param mixed[] $only
|
||||
* @param object|string $checker
|
||||
*/
|
||||
public function doesMatchOnly($checker, SmartFileInfo $smartFileInfo, array $only) : ?bool
|
||||
{
|
||||
foreach ($only as $onlyClass => $onlyFiles) {
|
||||
if (\is_int($onlyClass)) {
|
||||
// solely class
|
||||
$onlyClass = $onlyFiles;
|
||||
$onlyFiles = null;
|
||||
}
|
||||
if (!\is_a($checker, $onlyClass, \true)) {
|
||||
continue;
|
||||
}
|
||||
if ($onlyFiles === null) {
|
||||
return \true;
|
||||
}
|
||||
return !$this->fileInfoMatcher->doesFileInfoMatchPatterns($smartFileInfo, $onlyFiles);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix202208\Symplify\Skipper\ValueObject;
|
||||
|
||||
final class Option
|
||||
{
|
||||
/**
|
||||
* @api
|
||||
* @var string
|
||||
*/
|
||||
public const SKIP = 'skip';
|
||||
/**
|
||||
* @api
|
||||
* @var string
|
||||
*/
|
||||
public const ONLY = 'only';
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix202208\Symplify\Skipper\ValueObject;
|
||||
|
||||
/**
|
||||
* @api
|
||||
*/
|
||||
final class SkipperConfig
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
public const FILE_PATH = __DIR__ . '/../../config/config.php';
|
||||
}
|
|
@ -39,7 +39,6 @@
|
|||
"symplify\/phpstan-extensions": "<11.1.6",
|
||||
"symplify\/rule-doc-generator": "<11.1.6",
|
||||
"symplify\/vendor-patches": "<11.1.6",
|
||||
"symplify\/skipper": "<11.1.6",
|
||||
"symplify\/symfony-static-dumper": "<11.1.6",
|
||||
"symplify\/symplify-kernel": "<11.1.6",
|
||||
"symplify\/monorepo-builder": "<11.1.6",
|
||||
|
|
|
@ -100,7 +100,7 @@ final class SmartFileInfo extends SplFileInfo
|
|||
return \true;
|
||||
}
|
||||
// in case of relative compare
|
||||
return \fnmatch('*/' . $this->normalizePath($string), $this->getNormalizedRealPath());
|
||||
return \fnmatch('*/' . $normalizedPath, $this->getNormalizedRealPath());
|
||||
}
|
||||
public function getRealPath() : string
|
||||
{
|
||||
|
|
|
@ -38,7 +38,6 @@
|
|||
"symplify\/phpstan-extensions": "<11.1.6",
|
||||
"symplify\/rule-doc-generator": "<11.1.6",
|
||||
"symplify\/vendor-patches": "<11.1.6",
|
||||
"symplify\/skipper": "<11.1.6",
|
||||
"symplify\/symfony-static-dumper": "<11.1.6",
|
||||
"symplify\/monorepo-builder": "<11.1.6",
|
||||
"symplify\/config-transformer": "<11.1.6",
|
||||
|
|
Loading…
Reference in New Issue
Block a user