opt
/
cpanel
/
ea-wappspector
/
vendor
/
rector
/
rector
/
src
/
Skipper
/
Matcher
➕ New
📤 Upload
✎ Editing:
FileInfoMatcher.php
← Back
<?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); } }
💾 Save Changes
Cancel
📤 Upload File
×
Select File
Upload
Cancel
➕ Create New
×
Type
📄 File
📁 Folder
Name
Create
Cancel
✎ Rename Item
×
Current Name
New Name
Rename
Cancel
🔐 Change Permissions
×
Target File
Permission (e.g., 0755, 0644)
0755
0644
0777
Apply
Cancel