File manager - Edit - /var/www/payraty/helpdesk/public/storage/branding_media/images/finder.zip
Back
PK ! �}� � SplFileInfo.phpnu ȯ�� <?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Finder; /** * Extends \SplFileInfo to support relative paths. * * @author Fabien Potencier <fabien@symfony.com> */ class SplFileInfo extends \SplFileInfo { private string $relativePath; private string $relativePathname; /** * @param string $file The file name * @param string $relativePath The relative path * @param string $relativePathname The relative path name */ public function __construct(string $file, string $relativePath, string $relativePathname) { parent::__construct($file); $this->relativePath = $relativePath; $this->relativePathname = $relativePathname; } /** * Returns the relative path. * * This path does not contain the file name. */ public function getRelativePath(): string { return $this->relativePath; } /** * Returns the relative path name. * * This path contains the file name. */ public function getRelativePathname(): string { return $this->relativePathname; } public function getFilenameWithoutExtension(): string { $filename = $this->getFilename(); return pathinfo($filename, \PATHINFO_FILENAME); } /** * Returns the contents of the file. * * @throws \RuntimeException */ public function getContents(): string { set_error_handler(function ($type, $msg) use (&$error) { $error = $msg; }); try { $content = file_get_contents($this->getPathname()); } finally { restore_error_handler(); } if (false === $content) { throw new \RuntimeException($error); } return $content; } } PK ! �RI� � ( Exception/DirectoryNotFoundException.phpnu ȯ�� <?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Finder\Exception; /** * @author Andreas Erhard <andreas.erhard@i-med.ac.at> */ class DirectoryNotFoundException extends \InvalidArgumentException { } PK ! �cWޫ � # Exception/AccessDeniedException.phpnu ȯ�� <?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Finder\Exception; /** * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com> */ class AccessDeniedException extends \UnexpectedValueException { } PK ! k�'� � Gitignore.phpnu ȯ�� <?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Finder; /** * Gitignore matches against text. * * @author Michael Voříšek <vorismi3@fel.cvut.cz> * @author Ahmed Abdou <mail@ahmd.io> */ class Gitignore { /** * Returns a regexp which is the equivalent of the gitignore pattern. * * Format specification: https://git-scm.com/docs/gitignore#_pattern_format */ public static function toRegex(string $gitignoreFileContent): string { return self::buildRegex($gitignoreFileContent, false); } public static function toRegexMatchingNegatedPatterns(string $gitignoreFileContent): string { return self::buildRegex($gitignoreFileContent, true); } private static function buildRegex(string $gitignoreFileContent, bool $inverted): string { $gitignoreFileContent = preg_replace('~(?<!\\\\)#[^\n\r]*~', '', $gitignoreFileContent); $gitignoreLines = preg_split('~\r\n?|\n~', $gitignoreFileContent); $res = self::lineToRegex(''); foreach ($gitignoreLines as $line) { $line = preg_replace('~(?<!\\\\)[ \t]+$~', '', $line); if (str_starts_with($line, '!')) { $line = substr($line, 1); $isNegative = true; } else { $isNegative = false; } if ('' !== $line) { if ($isNegative xor $inverted) { $res = '(?!'.self::lineToRegex($line).'$)'.$res; } else { $res = '(?:'.$res.'|'.self::lineToRegex($line).')'; } } } return '~^(?:'.$res.')~s'; } private static function lineToRegex(string $gitignoreLine): string { if ('' === $gitignoreLine) { return '$f'; // always false } $slashPos = strpos($gitignoreLine, '/'); if (false !== $slashPos && \strlen($gitignoreLine) - 1 !== $slashPos) { if (0 === $slashPos) { $gitignoreLine = substr($gitignoreLine, 1); } $isAbsolute = true; } else { $isAbsolute = false; } $regex = preg_quote(str_replace('\\', '', $gitignoreLine), '~'); $regex = preg_replace_callback('~\\\\\[((?:\\\\!)?)([^\[\]]*)\\\\\]~', fn (array $matches): string => '['.('' !== $matches[1] ? '^' : '').str_replace('\\-', '-', $matches[2]).']', $regex); $regex = preg_replace('~(?:(?:\\\\\*){2,}(/?))+~', '(?:(?:(?!//).(?<!//))+$1)?', $regex); $regex = preg_replace('~\\\\\*~', '[^/]*', $regex); $regex = preg_replace('~\\\\\?~', '[^/]', $regex); return ($isAbsolute ? '' : '(?:[^/]+/)*') .$regex .(!str_ends_with($gitignoreLine, '/') ? '(?:$|/)' : ''); } } PK ! �3g� CHANGELOG.mdnu ȯ�� CHANGELOG ========= 6.4 --- * Add early directory pruning to `Finder::filter()` 6.2 --- * Add `Finder::sortByExtension()` and `Finder::sortBySize()` * Add `Finder::sortByCaseInsensitiveName()` to sort by name with case insensitive sorting methods 6.0 --- * Remove `Comparator::setTarget()` and `Comparator::setOperator()` 5.4.0 ----- * Deprecate `Comparator::setTarget()` and `Comparator::setOperator()` * Add a constructor to `Comparator` that allows setting target and operator * Finder's iterator has now `Symfony\Component\Finder\SplFileInfo` inner type specified * Add recursive .gitignore files support 5.0.0 ----- * added `$useNaturalSort` argument to `Finder::sortByName()` 4.3.0 ----- * added Finder::ignoreVCSIgnored() to ignore files based on rules listed in .gitignore 4.2.0 ----- * added $useNaturalSort option to Finder::sortByName() method * the `Finder::sortByName()` method will have a new `$useNaturalSort` argument in version 5.0, not defining it is deprecated * added `Finder::reverseSorting()` to reverse the sorting 4.0.0 ----- * removed `ExceptionInterface` * removed `Symfony\Component\Finder\Iterator\FilterIterator` 3.4.0 ----- * deprecated `Symfony\Component\Finder\Iterator\FilterIterator` * added Finder::hasResults() method to check if any results were found 3.3.0 ----- * added double-star matching to Glob::toRegex() 3.0.0 ----- * removed deprecated classes 2.8.0 ----- * deprecated adapters and related classes 2.5.0 ----- * added support for GLOB_BRACE in the paths passed to Finder::in() 2.3.0 ----- * added a way to ignore unreadable directories (via Finder::ignoreUnreadableDirs()) * unified the way subfolders that are not executable are handled by always throwing an AccessDeniedException exception 2.2.0 ----- * added Finder::path() and Finder::notPath() methods * added finder adapters to improve performance on specific platforms * added support for wildcard characters (glob patterns) in the paths passed to Finder::in() 2.1.0 ----- * added Finder::sortByAccessedTime(), Finder::sortByChangedTime(), and Finder::sortByModifiedTime() * added Countable to Finder * added support for an array of directories as an argument to Finder::exclude() * added searching based on the file content via Finder::contains() and Finder::notContains() * added support for the != operator in the Comparator * [BC BREAK] filter expressions (used for file name and content) are no more considered as regexps but glob patterns when they are enclosed in '*' or '?' PK ! �3�< Glob.phpnu ȯ�� <?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Finder; /** * Glob matches globbing patterns against text. * * if match_glob("foo.*", "foo.bar") echo "matched\n"; * * // prints foo.bar and foo.baz * $regex = glob_to_regex("foo.*"); * for (['foo.bar', 'foo.baz', 'foo', 'bar'] as $t) * { * if (/$regex/) echo "matched: $car\n"; * } * * Glob implements glob(3) style matching that can be used to match * against text, rather than fetching names from a filesystem. * * Based on the Perl Text::Glob module. * * @author Fabien Potencier <fabien@symfony.com> PHP port * @author Richard Clamp <richardc@unixbeard.net> Perl version * @copyright 2004-2005 Fabien Potencier <fabien@symfony.com> * @copyright 2002 Richard Clamp <richardc@unixbeard.net> */ class Glob { /** * Returns a regexp which is the equivalent of the glob pattern. */ public static function toRegex(string $glob, bool $strictLeadingDot = true, bool $strictWildcardSlash = true, string $delimiter = '#'): string { $firstByte = true; $escaping = false; $inCurlies = 0; $regex = ''; $sizeGlob = \strlen($glob); for ($i = 0; $i < $sizeGlob; ++$i) { $car = $glob[$i]; if ($firstByte && $strictLeadingDot && '.' !== $car) { $regex .= '(?=[^\.])'; } $firstByte = '/' === $car; if ($firstByte && $strictWildcardSlash && isset($glob[$i + 2]) && '**' === $glob[$i + 1].$glob[$i + 2] && (!isset($glob[$i + 3]) || '/' === $glob[$i + 3])) { $car = '[^/]++/'; if (!isset($glob[$i + 3])) { $car .= '?'; } if ($strictLeadingDot) { $car = '(?=[^\.])'.$car; } $car = '/(?:'.$car.')*'; $i += 2 + isset($glob[$i + 3]); if ('/' === $delimiter) { $car = str_replace('/', '\\/', $car); } } if ($delimiter === $car || '.' === $car || '(' === $car || ')' === $car || '|' === $car || '+' === $car || '^' === $car || '$' === $car) { $regex .= "\\$car"; } elseif ('*' === $car) { $regex .= $escaping ? '\\*' : ($strictWildcardSlash ? '[^/]*' : '.*'); } elseif ('?' === $car) { $regex .= $escaping ? '\\?' : ($strictWildcardSlash ? '[^/]' : '.'); } elseif ('{' === $car) { $regex .= $escaping ? '\\{' : '('; if (!$escaping) { ++$inCurlies; } } elseif ('}' === $car && $inCurlies) { $regex .= $escaping ? '}' : ')'; if (!$escaping) { --$inCurlies; } } elseif (',' === $car && $inCurlies) { $regex .= $escaping ? ',' : '|'; } elseif ('\\' === $car) { if ($escaping) { $regex .= '\\\\'; $escaping = false; } else { $escaping = true; } continue; } else { $regex .= $car; } $escaping = false; } return $delimiter.'^'.$regex.'$'.$delimiter; } } PK ! �C� � README.mdnu ȯ�� Finder Component ================ The Finder component finds files and directories via an intuitive fluent interface. Resources --------- * [Documentation](https://symfony.com/doc/current/components/finder.html) * [Contributing](https://symfony.com/doc/current/contributing/index.html) * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) in the [main Symfony repository](https://github.com/symfony/symfony) PK ! -9�� � Iterator/LazyIterator.phpnu ȯ�� <?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Finder\Iterator; /** * @author Jérémy Derussé <jeremy@derusse.com> * * @internal */ class LazyIterator implements \IteratorAggregate { private \Closure $iteratorFactory; public function __construct(callable $iteratorFactory) { $this->iteratorFactory = $iteratorFactory(...); } public function getIterator(): \Traversable { yield from ($this->iteratorFactory)(); } } PK ! �~ � � &