![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/rector/rector/src/Skipper/Matcher/ |
<?php declare (strict_types=1); namespace Rector\Skipper\Matcher; use Rector\Skipper\FileSystem\FnMatchPathNormalizer; use Rector\Skipper\FileSystem\PathNormalizer; use Rector\Skipper\Fnmatcher; use Rector\Skipper\RealpathMatcher; final class FileInfoMatcher { /** * @readonly * @var \Rector\Skipper\FileSystem\FnMatchPathNormalizer */ private $fnMatchPathNormalizer; /** * @readonly * @var \Rector\Skipper\Fnmatcher */ private $fnmatcher; /** * @readonly * @var \Rector\Skipper\RealpathMatcher */ private $realpathMatcher; public function __construct(FnMatchPathNormalizer $fnMatchPathNormalizer, Fnmatcher $fnmatcher, RealpathMatcher $realpathMatcher) { $this->fnMatchPathNormalizer = $fnMatchPathNormalizer; $this->fnmatcher = $fnmatcher; $this->realpathMatcher = $realpathMatcher; } /** * @param string[] $filePatterns */ public function doesFileInfoMatchPatterns(string $filePath, array $filePatterns) : bool { $filePath = PathNormalizer::normalize($filePath); foreach ($filePatterns as $filePattern) { $filePattern = PathNormalizer::normalize($filePattern); if ($this->doesFileMatchPattern($filePath, $filePattern)) { return \true; } } return \false; } /** * Supports both relative and absolute $file path. They differ for PHP-CS-Fixer and PHP_CodeSniffer. */ private function doesFileMatchPattern(string $filePath, string $ignoredPath) : bool { // in rector.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; } if ($this->fnmatcher->match($ignoredPath, $filePath)) { return \true; } return $this->realpathMatcher->match($ignoredPath, $filePath); } }