Plugin Directory

Changeset 3001767


Ignore:
Timestamp:
11/26/2023 09:51:59 AM (2 years ago)
Author:
everestthemes
Message:

version 2.2.2 updates

Location:
everest-backup
Files:
357 added
36 edited

Legend:

Unmodified
Added
Removed
  • everest-backup/trunk/changelog.txt

    r2993739 r3001767  
    11== Changelog ==
     2
     3= v2.2.2 =
     4* Fixes: Fixed local fonts and icons issue after migration/restoration.
    25
    36= v2.2.1 =
  • everest-backup/trunk/everest-backup.php

    r2993739 r3001767  
    66 * Author: everestthemes
    77 * Author URI: https://everestthemes.com/
    8  * Version: 2.2.1
     8 * Version: 2.2.2
    99 * Text Domain: everest-backup
    1010 * License: GPLv3 or later
  • everest-backup/trunk/inc/core/import/class-extraction.php

    r2946948 r3001767  
    7676                    $path = trim( str_replace( 'EBWPFILE_START:', '', $line ) );
    7777                    $path = str_replace( chr( 0 ), '', $path ); // Fix for null byte issue.
    78 
    79                     if ( 0 === strpos( $path, 'fonts' ) ) {
    80 
    81                         /**
    82                          * #Quick Fix: 217
    83                          * Skip fonts folders because WP download the required fonts automatically.
    84                          */
    85                         $handle = false;
    86                         continue;
    87                     }
    8878
    8979                    if ( false !== strpos( $path, 'ebwp-files' ) ) {
     
    122112                if ( false !== strpos( $line, 'EBWPFILE_END:' ) ) {
    123113                    if ( is_resource( $handle ) ) {
     114
     115                        /**
     116                         * Lets truncate the extra line that is being added at the end of the restored file.
     117                         * This is also the fix for issue: #217
     118                         */
     119                        $curr_pos = ftell( $handle );
     120
     121                        if ( !! $curr_pos ) {
     122                            // Remove additional last line which gets added during archive process.
     123                            ftruncate( $handle, $curr_pos - 1 );
     124                        }
     125
    124126                        fclose( $handle );
    125127                    }
    126128
    127                     if ( 'others' === $type ) {
    128                         self::normalize_file_contents( $path, $find_and_replace );
     129                    /**
     130                     * Fix few paths, or static values in files of wp-contents or uploads folders.
     131                     */
     132                    switch ( $type ) {
     133                        case 'uploads':
     134                        case 'others':
     135                            self::normalize_file_contents( $path, $find_and_replace );
     136                            break;
     137
     138                        default:
     139                            break;
    129140                    }
    130141
  • everest-backup/trunk/languages/everest-backup.pot

    r2993739 r3001767  
    77"Content-Type: text/plain; charset=UTF-8\n"
    88"Content-Transfer-Encoding: 8bit\n"
    9 "POT-Creation-Date: 2023-11-10 06:31+0000\n"
     9"POT-Creation-Date: 2023-11-25 16:57+0000\n"
    1010"X-Poedit-Basepath: ..\n"
    1111"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
     
    10471047msgstr ""
    10481048
    1049 #: ../inc/core/import/class-extraction.php:141
     1049#: ../inc/core/import/class-extraction.php:152
    10501050msgid "Restoring files [ %1$s ] : %2$d%% completed"
    10511051msgstr ""
    10521052
    1053 #: ../inc/core/import/class-extraction.php:145
     1053#: ../inc/core/import/class-extraction.php:156
    10541054msgid "Restored: %1$s out of %2$s"
    10551055msgstr ""
    10561056
    1057 #: ../inc/core/import/class-extraction.php:183
     1057#: ../inc/core/import/class-extraction.php:194
    10581058msgid "Restored %1$d files. Time taken: %2$s"
    10591059msgstr ""
    10601060
    1061 #: ../inc/core/import/class-extraction.php:187
     1061#: ../inc/core/import/class-extraction.php:198
    10621062msgid "Removing uploaded archive file"
    10631063msgstr ""
    10641064
    1065 #: ../inc/core/import/class-extraction.php:187
     1065#: ../inc/core/import/class-extraction.php:198
    10661066msgid "Keeping uploaded archive file."
    10671067msgstr ""
  • everest-backup/trunk/readme.txt

    r2993739 r3001767  
    66Tested up to: 6.4
    77Requires PHP: 7.4
    8 Stable tag: 2.2.1
     8Stable tag: 2.2.2
    99License: GPLv3 or later
    1010License URI: http://www.gnu.org/licenses/gpl-3.0.html
  • everest-backup/trunk/vendor/composer/autoload_classmap.php

    r2883659 r3001767  
    77
    88return array(
     9    'Attribute' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
    910    'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
     11    'PhpToken' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php',
     12    'Stringable' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Stringable.php',
     13    'UnhandledMatchError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
     14    'ValueError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
    1015);
  • everest-backup/trunk/vendor/composer/autoload_psr4.php

    r2883659 r3001767  
    77
    88return array(
     9    'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'),
    910    'Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'),
    1011    'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'),
  • everest-backup/trunk/vendor/composer/autoload_real.php

    r2980292 r3001767  
    3434        $loader->register(true);
    3535
     36        $filesToLoad = \Composer\Autoload\ComposerStaticIniteb33690ef56a03552354de09656002f2::$files;
     37        $requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
     38            if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
     39                $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
     40
     41                require $file;
     42            }
     43        }, null, null);
     44        foreach ($filesToLoad as $fileIdentifier => $file) {
     45            $requireFile($fileIdentifier, $file);
     46        }
     47
    3648        return $loader;
    3749    }
  • everest-backup/trunk/vendor/composer/autoload_static.php

    r2980292 r3001767  
    77class ComposerStaticIniteb33690ef56a03552354de09656002f2
    88{
     9    public static $files = array (
     10        '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
     11        'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
     12    );
     13
    914    public static $prefixLengthsPsr4 = array (
    1015        'S' =>
    1116        array (
     17            'Symfony\\Polyfill\\Php80\\' => 23,
    1218            'Symfony\\Component\\Finder\\' => 25,
    1319        ),
     
    2026
    2127    public static $prefixDirsPsr4 = array (
     28        'Symfony\\Polyfill\\Php80\\' =>
     29        array (
     30            0 => __DIR__ . '/..' . '/symfony/polyfill-php80',
     31        ),
    2232        'Symfony\\Component\\Finder\\' =>
    2333        array (
     
    3545
    3646    public static $classMap = array (
     47        'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
    3748        'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
     49        'PhpToken' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php',
     50        'Stringable' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Stringable.php',
     51        'UnhandledMatchError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
     52        'ValueError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
    3853    );
    3954
  • everest-backup/trunk/vendor/composer/installed.json

    r2980292 r3001767  
    149149        },
    150150        {
     151            "name": "symfony/deprecation-contracts",
     152            "version": "v2.5.2",
     153            "version_normalized": "2.5.2.0",
     154            "source": {
     155                "type": "git",
     156                "url": "https://github.com/symfony/deprecation-contracts.git",
     157                "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66"
     158            },
     159            "dist": {
     160                "type": "zip",
     161                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
     162                "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
     163                "shasum": ""
     164            },
     165            "require": {
     166                "php": ">=7.1"
     167            },
     168            "time": "2022-01-02T09:53:40+00:00",
     169            "type": "library",
     170            "extra": {
     171                "branch-alias": {
     172                    "dev-main": "2.5-dev"
     173                },
     174                "thanks": {
     175                    "name": "symfony/contracts",
     176                    "url": "https://github.com/symfony/contracts"
     177                }
     178            },
     179            "installation-source": "dist",
     180            "autoload": {
     181                "files": [
     182                    "function.php"
     183                ]
     184            },
     185            "notification-url": "https://packagist.org/downloads/",
     186            "license": [
     187                "MIT"
     188            ],
     189            "authors": [
     190                {
     191                    "name": "Nicolas Grekas",
     192                    "email": "p@tchwork.com"
     193                },
     194                {
     195                    "name": "Symfony Community",
     196                    "homepage": "https://symfony.com/contributors"
     197                }
     198            ],
     199            "description": "A generic function and convention to trigger deprecation notices",
     200            "homepage": "https://symfony.com",
     201            "support": {
     202                "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2"
     203            },
     204            "funding": [
     205                {
     206                    "url": "https://symfony.com/sponsor",
     207                    "type": "custom"
     208                },
     209                {
     210                    "url": "https://github.com/fabpot",
     211                    "type": "github"
     212                },
     213                {
     214                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
     215                    "type": "tidelift"
     216                }
     217            ],
     218            "install-path": "../symfony/deprecation-contracts"
     219        },
     220        {
    151221            "name": "symfony/finder",
    152             "version": "v6.3.5",
    153             "version_normalized": "6.3.5.0",
     222            "version": "v5.4.27",
     223            "version_normalized": "5.4.27.0",
    154224            "source": {
    155225                "type": "git",
    156226                "url": "https://github.com/symfony/finder.git",
    157                 "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4"
    158             },
    159             "dist": {
    160                 "type": "zip",
    161                 "url": "https://api.github.com/repos/symfony/finder/zipball/a1b31d88c0e998168ca7792f222cbecee47428c4",
    162                 "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4",
    163                 "shasum": ""
    164             },
    165             "require": {
    166                 "php": ">=8.1"
    167             },
    168             "require-dev": {
    169                 "symfony/filesystem": "^6.0"
    170             },
    171             "time": "2023-09-26T12:56:25+00:00",
     227                "reference": "ff4bce3c33451e7ec778070e45bd23f74214cd5d"
     228            },
     229            "dist": {
     230                "type": "zip",
     231                "url": "https://api.github.com/repos/symfony/finder/zipball/ff4bce3c33451e7ec778070e45bd23f74214cd5d",
     232                "reference": "ff4bce3c33451e7ec778070e45bd23f74214cd5d",
     233                "shasum": ""
     234            },
     235            "require": {
     236                "php": ">=7.2.5",
     237                "symfony/deprecation-contracts": "^2.1|^3",
     238                "symfony/polyfill-php80": "^1.16"
     239            },
     240            "time": "2023-07-31T08:02:31+00:00",
    172241            "type": "library",
    173242            "installation-source": "dist",
     
    197266            "homepage": "https://symfony.com",
    198267            "support": {
    199                 "source": "https://github.com/symfony/finder/tree/v6.3.5"
     268                "source": "https://github.com/symfony/finder/tree/v5.4.27"
    200269            },
    201270            "funding": [
     
    214283            ],
    215284            "install-path": "../symfony/finder"
     285        },
     286        {
     287            "name": "symfony/polyfill-php80",
     288            "version": "v1.28.0",
     289            "version_normalized": "1.28.0.0",
     290            "source": {
     291                "type": "git",
     292                "url": "https://github.com/symfony/polyfill-php80.git",
     293                "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5"
     294            },
     295            "dist": {
     296                "type": "zip",
     297                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
     298                "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
     299                "shasum": ""
     300            },
     301            "require": {
     302                "php": ">=7.1"
     303            },
     304            "time": "2023-01-26T09:26:14+00:00",
     305            "type": "library",
     306            "extra": {
     307                "branch-alias": {
     308                    "dev-main": "1.28-dev"
     309                },
     310                "thanks": {
     311                    "name": "symfony/polyfill",
     312                    "url": "https://github.com/symfony/polyfill"
     313                }
     314            },
     315            "installation-source": "dist",
     316            "autoload": {
     317                "files": [
     318                    "bootstrap.php"
     319                ],
     320                "psr-4": {
     321                    "Symfony\\Polyfill\\Php80\\": ""
     322                },
     323                "classmap": [
     324                    "Resources/stubs"
     325                ]
     326            },
     327            "notification-url": "https://packagist.org/downloads/",
     328            "license": [
     329                "MIT"
     330            ],
     331            "authors": [
     332                {
     333                    "name": "Ion Bazan",
     334                    "email": "ion.bazan@gmail.com"
     335                },
     336                {
     337                    "name": "Nicolas Grekas",
     338                    "email": "p@tchwork.com"
     339                },
     340                {
     341                    "name": "Symfony Community",
     342                    "homepage": "https://symfony.com/contributors"
     343                }
     344            ],
     345            "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
     346            "homepage": "https://symfony.com",
     347            "keywords": [
     348                "compatibility",
     349                "polyfill",
     350                "portable",
     351                "shim"
     352            ],
     353            "support": {
     354                "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0"
     355            },
     356            "funding": [
     357                {
     358                    "url": "https://symfony.com/sponsor",
     359                    "type": "custom"
     360                },
     361                {
     362                    "url": "https://github.com/fabpot",
     363                    "type": "github"
     364                },
     365                {
     366                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
     367                    "type": "tidelift"
     368                }
     369            ],
     370            "install-path": "../symfony/polyfill-php80"
    216371        }
    217372    ],
  • everest-backup/trunk/vendor/composer/installed.php

    r2993739 r3001767  
    44        'pretty_version' => 'dev-main',
    55        'version' => 'dev-main',
    6         'reference' => '91afe77455f5e2abf6991fb8c3df050e760fc9ce',
     6        'reference' => '2dd6a91ec30feb3291ba8a73a32bdd73135a45ac',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
     
    1414            'pretty_version' => 'dev-main',
    1515            'version' => 'dev-main',
    16             'reference' => '91afe77455f5e2abf6991fb8c3df050e760fc9ce',
     16            'reference' => '2dd6a91ec30feb3291ba8a73a32bdd73135a45ac',
    1717            'type' => 'wordpress-plugin',
    1818            'install_path' => __DIR__ . '/../../',
     
    4040            'dev_requirement' => false,
    4141        ),
     42        'symfony/deprecation-contracts' => array(
     43            'pretty_version' => 'v2.5.2',
     44            'version' => '2.5.2.0',
     45            'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66',
     46            'type' => 'library',
     47            'install_path' => __DIR__ . '/../symfony/deprecation-contracts',
     48            'aliases' => array(),
     49            'dev_requirement' => false,
     50        ),
    4251        'symfony/finder' => array(
    43             'pretty_version' => 'v6.3.5',
    44             'version' => '6.3.5.0',
    45             'reference' => 'a1b31d88c0e998168ca7792f222cbecee47428c4',
     52            'pretty_version' => 'v5.4.27',
     53            'version' => '5.4.27.0',
     54            'reference' => 'ff4bce3c33451e7ec778070e45bd23f74214cd5d',
    4655            'type' => 'library',
    4756            'install_path' => __DIR__ . '/../symfony/finder',
     
    4958            'dev_requirement' => false,
    5059        ),
     60        'symfony/polyfill-php80' => array(
     61            'pretty_version' => 'v1.28.0',
     62            'version' => '1.28.0.0',
     63            'reference' => '6caa57379c4aec19c0a12a38b59b26487dcfe4b5',
     64            'type' => 'library',
     65            'install_path' => __DIR__ . '/../symfony/polyfill-php80',
     66            'aliases' => array(),
     67            'dev_requirement' => false,
     68        ),
    5169    ),
    5270);
  • everest-backup/trunk/vendor/composer/platform_check.php

    r2980292 r3001767  
    55$issues = array();
    66
    7 if (!(PHP_VERSION_ID >= 80100)) {
    8     $issues[] = 'Your Composer dependencies require a PHP version ">= 8.1.0". You are running ' . PHP_VERSION . '.';
     7if (!(PHP_VERSION_ID >= 70400)) {
     8    $issues[] = 'Your Composer dependencies require a PHP version ">= 7.4.0". You are running ' . PHP_VERSION . '.';
    99}
    1010
  • everest-backup/trunk/vendor/symfony/finder/CHANGELOG.md

    r2980292 r3001767  
    11CHANGELOG
    22=========
    3 
    4 6.2
    5 ---
    6 
    7  * Add `Finder::sortByExtension()` and `Finder::sortBySize()`
    8  * Add `Finder::sortByCaseInsensitiveName()` to sort by name with case insensitive sorting methods
    9 
    10 6.0
    11 ---
    12 
    13  * Remove `Comparator::setTarget()` and `Comparator::setOperator()`
    143
    1545.4.0
  • everest-backup/trunk/vendor/symfony/finder/Comparator/Comparator.php

    r2980292 r3001767  
    1717class Comparator
    1818{
    19     private string $target;
    20     private string $operator;
     19    private $target;
     20    private $operator = '==';
    2121
    22     public function __construct(string $target, string $operator = '==')
     22    public function __construct(string $target = null, string $operator = '==')
     23    {
     24        if (null === $target) {
     25            trigger_deprecation('symfony/finder', '5.4', 'Constructing a "%s" without setting "$target" is deprecated.', __CLASS__);
     26        }
     27
     28        $this->target = $target;
     29        $this->doSetOperator($operator);
     30    }
     31
     32    /**
     33     * Gets the target value.
     34     *
     35     * @return string
     36     */
     37    public function getTarget()
     38    {
     39        if (null === $this->target) {
     40            trigger_deprecation('symfony/finder', '5.4', 'Calling "%s" without initializing the target is deprecated.', __METHOD__);
     41        }
     42
     43        return $this->target;
     44    }
     45
     46    /**
     47     * @deprecated set the target via the constructor instead
     48     */
     49    public function setTarget(string $target)
     50    {
     51        trigger_deprecation('symfony/finder', '5.4', '"%s" is deprecated. Set the target via the constructor instead.', __METHOD__);
     52
     53        $this->target = $target;
     54    }
     55
     56    /**
     57     * Gets the comparison operator.
     58     *
     59     * @return string
     60     */
     61    public function getOperator()
     62    {
     63        return $this->operator;
     64    }
     65
     66    /**
     67     * Sets the comparison operator.
     68     *
     69     * @throws \InvalidArgumentException
     70     *
     71     * @deprecated set the operator via the constructor instead
     72     */
     73    public function setOperator(string $operator)
     74    {
     75        trigger_deprecation('symfony/finder', '5.4', '"%s" is deprecated. Set the operator via the constructor instead.', __METHOD__);
     76
     77        $this->doSetOperator('' === $operator ? '==' : $operator);
     78    }
     79
     80    /**
     81     * Tests against the target.
     82     *
     83     * @param mixed $test A test value
     84     *
     85     * @return bool
     86     */
     87    public function test($test)
     88    {
     89        if (null === $this->target) {
     90            trigger_deprecation('symfony/finder', '5.4', 'Calling "%s" without initializing the target is deprecated.', __METHOD__);
     91        }
     92
     93        switch ($this->operator) {
     94            case '>':
     95                return $test > $this->target;
     96            case '>=':
     97                return $test >= $this->target;
     98            case '<':
     99                return $test < $this->target;
     100            case '<=':
     101                return $test <= $this->target;
     102            case '!=':
     103                return $test != $this->target;
     104        }
     105
     106        return $test == $this->target;
     107    }
     108
     109    private function doSetOperator(string $operator): void
    23110    {
    24111        if (!\in_array($operator, ['>', '<', '>=', '<=', '==', '!='])) {
     
    26113        }
    27114
    28         $this->target = $target;
    29115        $this->operator = $operator;
    30116    }
    31 
    32     /**
    33      * Gets the target value.
    34      */
    35     public function getTarget(): string
    36     {
    37         return $this->target;
    38     }
    39 
    40     /**
    41      * Gets the comparison operator.
    42      */
    43     public function getOperator(): string
    44     {
    45         return $this->operator;
    46     }
    47 
    48     /**
    49      * Tests against the target.
    50      */
    51     public function test(mixed $test): bool
    52     {
    53         return match ($this->operator) {
    54             '>' => $test > $this->target,
    55             '>=' => $test >= $this->target,
    56             '<' => $test < $this->target,
    57             '<=' => $test <= $this->target,
    58             '!=' => $test != $this->target,
    59             default => $test == $this->target,
    60         };
    61     }
    62117}
  • everest-backup/trunk/vendor/symfony/finder/Comparator/DateComparator.php

    r2980292 r3001767  
    3131
    3232        try {
    33             $date = new \DateTimeImmutable($matches[2]);
     33            $date = new \DateTime($matches[2]);
    3434            $target = $date->format('U');
    35         } catch (\Exception) {
     35        } catch (\Exception $e) {
    3636            throw new \InvalidArgumentException(sprintf('"%s" is not a valid date.', $matches[2]));
    3737        }
  • everest-backup/trunk/vendor/symfony/finder/Finder.php

    r2980292 r3001767  
    4646    public const IGNORE_VCS_IGNORED_FILES = 4;
    4747
    48     private int $mode = 0;
    49     private array $names = [];
    50     private array $notNames = [];
    51     private array $exclude = [];
    52     private array $filters = [];
    53     private array $depths = [];
    54     private array $sizes = [];
    55     private bool $followLinks = false;
    56     private bool $reverseSorting = false;
    57     private \Closure|int|false $sort = false;
    58     private int $ignore = 0;
    59     private array $dirs = [];
    60     private array $dates = [];
    61     private array $iterators = [];
    62     private array $contains = [];
    63     private array $notContains = [];
    64     private array $paths = [];
    65     private array $notPaths = [];
    66     private bool $ignoreUnreadableDirs = false;
    67 
    68     private static array $vcsPatterns = ['.svn', '_svn', 'CVS', '_darcs', '.arch-params', '.monotone', '.bzr', '.git', '.hg'];
     48    private $mode = 0;
     49    private $names = [];
     50    private $notNames = [];
     51    private $exclude = [];
     52    private $filters = [];
     53    private $depths = [];
     54    private $sizes = [];
     55    private $followLinks = false;
     56    private $reverseSorting = false;
     57    private $sort = false;
     58    private $ignore = 0;
     59    private $dirs = [];
     60    private $dates = [];
     61    private $iterators = [];
     62    private $contains = [];
     63    private $notContains = [];
     64    private $paths = [];
     65    private $notPaths = [];
     66    private $ignoreUnreadableDirs = false;
     67
     68    private static $vcsPatterns = ['.svn', '_svn', 'CVS', '_darcs', '.arch-params', '.monotone', '.bzr', '.git', '.hg'];
    6969
    7070    public function __construct()
     
    7575    /**
    7676     * Creates a new Finder.
    77      */
    78     public static function create(): static
     77     *
     78     * @return static
     79     */
     80    public static function create()
    7981    {
    8082        return new static();
     
    8688     * @return $this
    8789     */
    88     public function directories(): static
     90    public function directories()
    8991    {
    9092        $this->mode = Iterator\FileTypeFilterIterator::ONLY_DIRECTORIES;
     
    98100     * @return $this
    99101     */
    100     public function files(): static
     102    public function files()
    101103    {
    102104        $this->mode = Iterator\FileTypeFilterIterator::ONLY_FILES;
     
    121123     * @see NumberComparator
    122124     */
    123     public function depth(string|int|array $levels): static
     125    public function depth($levels)
    124126    {
    125127        foreach ((array) $levels as $level) {
     
    149151     * @see DateComparator
    150152     */
    151     public function date(string|array $dates): static
     153    public function date($dates)
    152154    {
    153155        foreach ((array) $dates as $date) {
     
    174176     * @see FilenameFilterIterator
    175177     */
    176     public function name(string|array $patterns): static
     178    public function name($patterns)
    177179    {
    178180        $this->names = array_merge($this->names, (array) $patterns);
     
    190192     * @see FilenameFilterIterator
    191193     */
    192     public function notName(string|array $patterns): static
     194    public function notName($patterns)
    193195    {
    194196        $this->notNames = array_merge($this->notNames, (array) $patterns);
     
    212214     * @see FilecontentFilterIterator
    213215     */
    214     public function contains(string|array $patterns): static
     216    public function contains($patterns)
    215217    {
    216218        $this->contains = array_merge($this->contains, (array) $patterns);
     
    234236     * @see FilecontentFilterIterator
    235237     */
    236     public function notContains(string|array $patterns): static
     238    public function notContains($patterns)
    237239    {
    238240        $this->notContains = array_merge($this->notContains, (array) $patterns);
     
    258260     * @see FilenameFilterIterator
    259261     */
    260     public function path(string|array $patterns): static
     262    public function path($patterns)
    261263    {
    262264        $this->paths = array_merge($this->paths, (array) $patterns);
     
    282284     * @see FilenameFilterIterator
    283285     */
    284     public function notPath(string|array $patterns): static
     286    public function notPath($patterns)
    285287    {
    286288        $this->notPaths = array_merge($this->notPaths, (array) $patterns);
     
    304306     * @see NumberComparator
    305307     */
    306     public function size(string|int|array $sizes): static
     308    public function size($sizes)
    307309    {
    308310        foreach ((array) $sizes as $size) {
     
    326328     * @see ExcludeDirectoryFilterIterator
    327329     */
    328     public function exclude(string|array $dirs): static
     330    public function exclude($dirs)
    329331    {
    330332        $this->exclude = array_merge($this->exclude, (array) $dirs);
     
    342344     * @see ExcludeDirectoryFilterIterator
    343345     */
    344     public function ignoreDotFiles(bool $ignoreDotFiles): static
     346    public function ignoreDotFiles(bool $ignoreDotFiles)
    345347    {
    346348        if ($ignoreDotFiles) {
     
    362364     * @see ExcludeDirectoryFilterIterator
    363365     */
    364     public function ignoreVCS(bool $ignoreVCS): static
     366    public function ignoreVCS(bool $ignoreVCS)
    365367    {
    366368        if ($ignoreVCS) {
     
    380382     * @return $this
    381383     */
    382     public function ignoreVCSIgnored(bool $ignoreVCSIgnored): static
     384    public function ignoreVCSIgnored(bool $ignoreVCSIgnored)
    383385    {
    384386        if ($ignoreVCSIgnored) {
     
    397399     *
    398400     * @param string|string[] $pattern VCS patterns to ignore
    399      *
    400      * @return void
    401      */
    402     public static function addVCSPattern(string|array $pattern)
     401     */
     402    public static function addVCSPattern($pattern)
    403403    {
    404404        foreach ((array) $pattern as $p) {
     
    420420     * @see SortableIterator
    421421     */
    422     public function sort(\Closure $closure): static
     422    public function sort(\Closure $closure)
    423423    {
    424424        $this->sort = $closure;
     
    428428
    429429    /**
    430      * Sorts files and directories by extension.
     430     * Sorts files and directories by name.
    431431     *
    432432     * This can be slow as all the matching files and directories must be retrieved for comparison.
     
    436436     * @see SortableIterator
    437437     */
    438     public function sortByExtension(): static
    439     {
    440         $this->sort = Iterator\SortableIterator::SORT_BY_EXTENSION;
    441 
    442         return $this;
    443     }
    444 
    445     /**
    446      * Sorts files and directories by name.
     438    public function sortByName(bool $useNaturalSort = false)
     439    {
     440        $this->sort = $useNaturalSort ? Iterator\SortableIterator::SORT_BY_NAME_NATURAL : Iterator\SortableIterator::SORT_BY_NAME;
     441
     442        return $this;
     443    }
     444
     445    /**
     446     * Sorts files and directories by type (directories before files), then by name.
    447447     *
    448448     * This can be slow as all the matching files and directories must be retrieved for comparison.
     
    452452     * @see SortableIterator
    453453     */
    454     public function sortByName(bool $useNaturalSort = false): static
    455     {
    456         $this->sort = $useNaturalSort ? Iterator\SortableIterator::SORT_BY_NAME_NATURAL : Iterator\SortableIterator::SORT_BY_NAME;
    457 
    458         return $this;
    459     }
    460 
    461     /**
    462      * Sorts files and directories by name case insensitive.
     454    public function sortByType()
     455    {
     456        $this->sort = Iterator\SortableIterator::SORT_BY_TYPE;
     457
     458        return $this;
     459    }
     460
     461    /**
     462     * Sorts files and directories by the last accessed time.
     463     *
     464     * This is the time that the file was last accessed, read or written to.
    463465     *
    464466     * This can be slow as all the matching files and directories must be retrieved for comparison.
     
    468470     * @see SortableIterator
    469471     */
    470     public function sortByCaseInsensitiveName(bool $useNaturalSort = false): static
    471     {
    472         $this->sort = $useNaturalSort ? Iterator\SortableIterator::SORT_BY_NAME_NATURAL_CASE_INSENSITIVE : Iterator\SortableIterator::SORT_BY_NAME_CASE_INSENSITIVE;
    473 
    474         return $this;
    475     }
    476 
    477     /**
    478      * Sorts files and directories by size.
     472    public function sortByAccessedTime()
     473    {
     474        $this->sort = Iterator\SortableIterator::SORT_BY_ACCESSED_TIME;
     475
     476        return $this;
     477    }
     478
     479    /**
     480     * Reverses the sorting.
     481     *
     482     * @return $this
     483     */
     484    public function reverseSorting()
     485    {
     486        $this->reverseSorting = true;
     487
     488        return $this;
     489    }
     490
     491    /**
     492     * Sorts files and directories by the last inode changed time.
     493     *
     494     * This is the time that the inode information was last modified (permissions, owner, group or other metadata).
     495     *
     496     * On Windows, since inode is not available, changed time is actually the file creation time.
    479497     *
    480498     * This can be slow as all the matching files and directories must be retrieved for comparison.
     
    484502     * @see SortableIterator
    485503     */
    486     public function sortBySize(): static
    487     {
    488         $this->sort = Iterator\SortableIterator::SORT_BY_SIZE;
    489 
    490         return $this;
    491     }
    492 
    493     /**
    494      * Sorts files and directories by type (directories before files), then by name.
     504    public function sortByChangedTime()
     505    {
     506        $this->sort = Iterator\SortableIterator::SORT_BY_CHANGED_TIME;
     507
     508        return $this;
     509    }
     510
     511    /**
     512     * Sorts files and directories by the last modified time.
     513     *
     514     * This is the last time the actual contents of the file were last modified.
    495515     *
    496516     * This can be slow as all the matching files and directories must be retrieved for comparison.
     
    500520     * @see SortableIterator
    501521     */
    502     public function sortByType(): static
    503     {
    504         $this->sort = Iterator\SortableIterator::SORT_BY_TYPE;
    505 
    506         return $this;
    507     }
    508 
    509     /**
    510      * Sorts files and directories by the last accessed time.
    511      *
    512      * This is the time that the file was last accessed, read or written to.
    513      *
    514      * This can be slow as all the matching files and directories must be retrieved for comparison.
    515      *
    516      * @return $this
    517      *
    518      * @see SortableIterator
    519      */
    520     public function sortByAccessedTime(): static
    521     {
    522         $this->sort = Iterator\SortableIterator::SORT_BY_ACCESSED_TIME;
    523 
    524         return $this;
    525     }
    526 
    527     /**
    528      * Reverses the sorting.
    529      *
    530      * @return $this
    531      */
    532     public function reverseSorting(): static
    533     {
    534         $this->reverseSorting = true;
    535 
    536         return $this;
    537     }
    538 
    539     /**
    540      * Sorts files and directories by the last inode changed time.
    541      *
    542      * This is the time that the inode information was last modified (permissions, owner, group or other metadata).
    543      *
    544      * On Windows, since inode is not available, changed time is actually the file creation time.
    545      *
    546      * This can be slow as all the matching files and directories must be retrieved for comparison.
    547      *
    548      * @return $this
    549      *
    550      * @see SortableIterator
    551      */
    552     public function sortByChangedTime(): static
    553     {
    554         $this->sort = Iterator\SortableIterator::SORT_BY_CHANGED_TIME;
    555 
    556         return $this;
    557     }
    558 
    559     /**
    560      * Sorts files and directories by the last modified time.
    561      *
    562      * This is the last time the actual contents of the file were last modified.
    563      *
    564      * This can be slow as all the matching files and directories must be retrieved for comparison.
    565      *
    566      * @return $this
    567      *
    568      * @see SortableIterator
    569      */
    570     public function sortByModifiedTime(): static
     522    public function sortByModifiedTime()
    571523    {
    572524        $this->sort = Iterator\SortableIterator::SORT_BY_MODIFIED_TIME;
     
    585537     * @see CustomFilterIterator
    586538     */
    587     public function filter(\Closure $closure): static
     539    public function filter(\Closure $closure)
    588540    {
    589541        $this->filters[] = $closure;
     
    597549     * @return $this
    598550     */
    599     public function followLinks(): static
     551    public function followLinks()
    600552    {
    601553        $this->followLinks = true;
     
    611563     * @return $this
    612564     */
    613     public function ignoreUnreadableDirs(bool $ignore = true): static
     565    public function ignoreUnreadableDirs(bool $ignore = true)
    614566    {
    615567        $this->ignoreUnreadableDirs = $ignore;
     
    627579     * @throws DirectoryNotFoundException if one of the directories does not exist
    628580     */
    629     public function in(string|array $dirs): static
     581    public function in($dirs)
    630582    {
    631583        $resolvedDirs = [];
     
    636588            } elseif ($glob = glob($dir, (\defined('GLOB_BRACE') ? \GLOB_BRACE : 0) | \GLOB_ONLYDIR | \GLOB_NOSORT)) {
    637589                sort($glob);
    638                 $resolvedDirs[] = array_map($this->normalizeDir(...), $glob);
     590                $resolvedDirs[] = array_map([$this, 'normalizeDir'], $glob);
    639591            } else {
    640592                throw new DirectoryNotFoundException(sprintf('The "%s" directory does not exist.', $dir));
     
    656608     * @throws \LogicException if the in() method has not been called
    657609     */
    658     public function getIterator(): \Iterator
     610    #[\ReturnTypeWillChange]
     611    public function getIterator()
    659612    {
    660613        if (0 === \count($this->dirs) && 0 === \count($this->iterators)) {
     
    674627        $iterator = new \AppendIterator();
    675628        foreach ($this->dirs as $dir) {
    676             $iterator->append(new \IteratorIterator(new LazyIterator(fn () => $this->searchInDirectory($dir))));
     629            $iterator->append(new \IteratorIterator(new LazyIterator(function () use ($dir) {
     630                return $this->searchInDirectory($dir);
     631            })));
    677632        }
    678633
     
    697652     * @throws \InvalidArgumentException when the given argument is not iterable
    698653     */
    699     public function append(iterable $iterator): static
     654    public function append(iterable $iterator)
    700655    {
    701656        if ($iterator instanceof \IteratorAggregate) {
     
    719674    /**
    720675     * Check if any results were found.
    721      */
    722     public function hasResults(): bool
     676     *
     677     * @return bool
     678     */
     679    public function hasResults()
    723680    {
    724681        foreach ($this->getIterator() as $_) {
     
    731688    /**
    732689     * Counts all the results collected by the iterators.
    733      */
    734     public function count(): int
     690     *
     691     * @return int
     692     */
     693    #[\ReturnTypeWillChange]
     694    public function count()
    735695    {
    736696        return iterator_count($this->getIterator());
  • everest-backup/trunk/vendor/symfony/finder/Gitignore.php

    r2980292 r3001767  
    4444            $line = preg_replace('~(?<!\\\\)[ \t]+$~', '', $line);
    4545
    46             if (str_starts_with($line, '!')) {
     46            if ('!' === substr($line, 0, 1)) {
    4747                $line = substr($line, 1);
    4848                $isNegative = true;
     
    8080
    8181        $regex = preg_quote(str_replace('\\', '', $gitignoreLine), '~');
    82         $regex = preg_replace_callback('~\\\\\[((?:\\\\!)?)([^\[\]]*)\\\\\]~', fn (array $matches): string => '['.('' !== $matches[1] ? '^' : '').str_replace('\\-', '-', $matches[2]).']', $regex);
     82        $regex = preg_replace_callback('~\\\\\[((?:\\\\!)?)([^\[\]]*)\\\\\]~', function (array $matches): string {
     83            return '['.('' !== $matches[1] ? '^' : '').str_replace('\\-', '-', $matches[2]).']';
     84        }, $regex);
    8385        $regex = preg_replace('~(?:(?:\\\\\*){2,}(/?))+~', '(?:(?:(?!//).(?<!//))+$1)?', $regex);
    8486        $regex = preg_replace('~\\\\\*~', '[^/]*', $regex);
  • everest-backup/trunk/vendor/symfony/finder/Glob.php

    r2883659 r3001767  
    3838    /**
    3939     * Returns a regexp which is the equivalent of the glob pattern.
     40     *
     41     * @return string
    4042     */
    41     public static function toRegex(string $glob, bool $strictLeadingDot = true, bool $strictWildcardSlash = true, string $delimiter = '#'): string
     43    public static function toRegex(string $glob, bool $strictLeadingDot = true, bool $strictWildcardSlash = true, string $delimiter = '#')
    4244    {
    4345        $firstByte = true;
  • everest-backup/trunk/vendor/symfony/finder/Iterator/CustomFilterIterator.php

    r2883659 r3001767  
    2424class CustomFilterIterator extends \FilterIterator
    2525{
    26     private array $filters = [];
     26    private $filters = [];
    2727
    2828    /**
     
    4646    /**
    4747     * Filters the iterator values.
     48     *
     49     * @return bool
    4850     */
    49     public function accept(): bool
     51    #[\ReturnTypeWillChange]
     52    public function accept()
    5053    {
    5154        $fileinfo = $this->current();
  • everest-backup/trunk/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php

    r2883659 r3001767  
    2323class DateRangeFilterIterator extends \FilterIterator
    2424{
    25     private array $comparators = [];
     25    private $comparators = [];
    2626
    2727    /**
     
    3838    /**
    3939     * Filters the iterator values.
     40     *
     41     * @return bool
    4042     */
    41     public function accept(): bool
     43    #[\ReturnTypeWillChange]
     44    public function accept()
    4245    {
    4346        $fileinfo = $this->current();
  • everest-backup/trunk/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php

    r2883659 r3001767  
    2424class DepthRangeFilterIterator extends \FilterIterator
    2525{
    26     private int $minDepth = 0;
     26    private $minDepth = 0;
    2727
    2828    /**
     
    4141    /**
    4242     * Filters the iterator values.
     43     *
     44     * @return bool
    4345     */
    44     public function accept(): bool
     46    #[\ReturnTypeWillChange]
     47    public function accept()
    4548    {
    4649        return $this->getInnerIterator()->getDepth() >= $this->minDepth;
  • everest-backup/trunk/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php

    r2980292 r3001767  
    1212namespace Symfony\Component\Finder\Iterator;
    1313
    14 use Symfony\Component\Finder\SplFileInfo;
    15 
    1614/**
    1715 * ExcludeDirectoryFilterIterator filters out directories.
     
    1917 * @author Fabien Potencier <fabien@symfony.com>
    2018 *
    21  * @extends \FilterIterator<string, SplFileInfo>
     19 * @extends \FilterIterator<string, \SplFileInfo>
    2220 *
    23  * @implements \RecursiveIterator<string, SplFileInfo>
     21 * @implements \RecursiveIterator<string, \SplFileInfo>
    2422 */
    2523class ExcludeDirectoryFilterIterator extends \FilterIterator implements \RecursiveIterator
    2624{
    27     /** @var \Iterator<string, SplFileInfo> */
    28     private \Iterator $iterator;
    29     private bool $isRecursive;
    30     private array $excludedDirs = [];
    31     private ?string $excludedPattern = null;
     25    private $iterator;
     26    private $isRecursive;
     27    private $excludedDirs = [];
     28    private $excludedPattern;
    3229
    3330    /**
    34      * @param \Iterator<string, SplFileInfo> $iterator    The Iterator to filter
    35      * @param string[]                       $directories An array of directories to exclude
     31     * @param \Iterator $iterator    The Iterator to filter
     32     * @param string[]  $directories An array of directories to exclude
    3633     */
    3734    public function __construct(\Iterator $iterator, array $directories)
     
    5754    /**
    5855     * Filters the iterator values.
     56     *
     57     * @return bool
    5958     */
    60     public function accept(): bool
     59    #[\ReturnTypeWillChange]
     60    public function accept()
    6161    {
    6262        if ($this->isRecursive && isset($this->excludedDirs[$this->getFilename()]) && $this->isDir()) {
     
    7474    }
    7575
    76     public function hasChildren(): bool
     76    /**
     77     * @return bool
     78     */
     79    #[\ReturnTypeWillChange]
     80    public function hasChildren()
    7781    {
    7882        return $this->isRecursive && $this->iterator->hasChildren();
    7983    }
    8084
    81     public function getChildren(): self
     85    /**
     86     * @return self
     87     */
     88    #[\ReturnTypeWillChange]
     89    public function getChildren()
    8290    {
    8391        $children = new self($this->iterator->getChildren(), []);
  • everest-backup/trunk/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php

    r2980292 r3001767  
    2424    public const ONLY_DIRECTORIES = 2;
    2525
    26     private int $mode;
     26    private $mode;
    2727
    2828    /**
    29      * @param \Iterator<string, \SplFileInfo> $iterator The Iterator to filter
    30      * @param int                             $mode     The mode (self::ONLY_FILES or self::ONLY_DIRECTORIES)
     29     * @param \Iterator $iterator The Iterator to filter
     30     * @param int       $mode     The mode (self::ONLY_FILES or self::ONLY_DIRECTORIES)
    3131     */
    3232    public function __construct(\Iterator $iterator, int $mode)
     
    3939    /**
    4040     * Filters the iterator values.
     41     *
     42     * @return bool
    4143     */
    42     public function accept(): bool
     44    #[\ReturnTypeWillChange]
     45    public function accept()
    4346    {
    4447        $fileinfo = $this->current();
  • everest-backup/trunk/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php

    r2980292 r3001767  
    1212namespace Symfony\Component\Finder\Iterator;
    1313
    14 use Symfony\Component\Finder\SplFileInfo;
    15 
    1614/**
    1715 * FilecontentFilterIterator filters files by their contents using patterns (regexps or strings).
     
    2018 * @author Włodzimierz Gajda <gajdaw@gajdaw.pl>
    2119 *
    22  * @extends MultiplePcreFilterIterator<string, SplFileInfo>
     20 * @extends MultiplePcreFilterIterator<string, \SplFileInfo>
    2321 */
    2422class FilecontentFilterIterator extends MultiplePcreFilterIterator
     
    2624    /**
    2725     * Filters the iterator values.
     26     *
     27     * @return bool
    2828     */
    29     public function accept(): bool
     29    #[\ReturnTypeWillChange]
     30    public function accept()
    3031    {
    3132        if (!$this->matchRegexps && !$this->noMatchRegexps) {
     
    5152     *
    5253     * @param string $str Pattern: string or regexp
     54     *
     55     * @return string
    5356     */
    54     protected function toRegex(string $str): string
     57    protected function toRegex(string $str)
    5558    {
    5659        return $this->isRegex($str) ? $str : '/'.preg_quote($str, '/').'/';
  • everest-backup/trunk/vendor/symfony/finder/Iterator/FilenameFilterIterator.php

    r2883659 r3001767  
    2525    /**
    2626     * Filters the iterator values.
     27     *
     28     * @return bool
    2729     */
    28     public function accept(): bool
     30    #[\ReturnTypeWillChange]
     31    public function accept()
    2932    {
    3033        return $this->isAccepted($this->current()->getFilename());
     
    3841     *
    3942     * @param string $str Pattern: glob or regexp
     43     *
     44     * @return string
    4045     */
    41     protected function toRegex(string $str): string
     46    protected function toRegex(string $str)
    4247    {
    4348        return $this->isRegex($str) ? $str : Glob::toRegex($str);
  • everest-backup/trunk/vendor/symfony/finder/Iterator/LazyIterator.php

    r2980292 r3001767  
    1919class LazyIterator implements \IteratorAggregate
    2020{
    21     private \Closure $iteratorFactory;
     21    private $iteratorFactory;
    2222
    2323    public function __construct(callable $iteratorFactory)
    2424    {
    25         $this->iteratorFactory = $iteratorFactory(...);
     25        $this->iteratorFactory = $iteratorFactory;
    2626    }
    2727
  • everest-backup/trunk/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php

    r2980292 r3001767  
    2828
    2929    /**
    30      * @param \Iterator<TKey, TValue> $iterator        The Iterator to filter
    31      * @param string[]                $matchPatterns   An array of patterns that need to match
    32      * @param string[]                $noMatchPatterns An array of patterns that need to not match
     30     * @param \Iterator $iterator        The Iterator to filter
     31     * @param string[]  $matchPatterns   An array of patterns that need to match
     32     * @param string[]  $noMatchPatterns An array of patterns that need to not match
    3333     */
    3434    public function __construct(\Iterator $iterator, array $matchPatterns, array $noMatchPatterns)
     
    5151     * Such case can be handled by child classes before calling the method if they want to
    5252     * apply a different behavior.
     53     *
     54     * @return bool
    5355     */
    54     protected function isAccepted(string $string): bool
     56    protected function isAccepted(string $string)
    5557    {
    5658        // should at least not match one rule to exclude
     
    7880    /**
    7981     * Checks whether the string is a regex.
     82     *
     83     * @return bool
    8084     */
    81     protected function isRegex(string $str): bool
     85    protected function isRegex(string $str)
    8286    {
    8387        $availableModifiers = 'imsxuADU';
     
    107111    /**
    108112     * Converts string into regexp.
     113     *
     114     * @return string
    109115     */
    110     abstract protected function toRegex(string $str): string;
     116    abstract protected function toRegex(string $str);
    111117}
  • everest-backup/trunk/vendor/symfony/finder/Iterator/PathFilterIterator.php

    r2980292 r3001767  
    1212namespace Symfony\Component\Finder\Iterator;
    1313
    14 use Symfony\Component\Finder\SplFileInfo;
    15 
    1614/**
    1715 * PathFilterIterator filters files by path patterns (e.g. some/special/dir).
     
    2018 * @author Włodzimierz Gajda <gajdaw@gajdaw.pl>
    2119 *
    22  * @extends MultiplePcreFilterIterator<string, SplFileInfo>
     20 * @extends MultiplePcreFilterIterator<string, \SplFileInfo>
    2321 */
    2422class PathFilterIterator extends MultiplePcreFilterIterator
     
    2624    /**
    2725     * Filters the iterator values.
     26     *
     27     * @return bool
    2828     */
    29     public function accept(): bool
     29    #[\ReturnTypeWillChange]
     30    public function accept()
    3031    {
    3132        $filename = $this->current()->getRelativePathname();
     
    4950     *
    5051     * @param string $str Pattern: regexp or dirname
     52     *
     53     * @return string
    5154     */
    52     protected function toRegex(string $str): string
     55    protected function toRegex(string $str)
    5356    {
    5457        return $this->isRegex($str) ? $str : '/'.preg_quote($str, '/').'/';
  • everest-backup/trunk/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php

    r2980292 r3001767  
    1919 *
    2020 * @author Victor Berchet <victor@suumit.com>
    21  *
    22  * @extends \RecursiveDirectoryIterator<string, SplFileInfo>
    2321 */
    2422class RecursiveDirectoryIterator extends \RecursiveDirectoryIterator
    2523{
    26     private bool $ignoreUnreadableDirs;
    27     private bool $ignoreFirstRewind = true;
     24    /**
     25     * @var bool
     26     */
     27    private $ignoreUnreadableDirs;
     28
     29    /**
     30     * @var bool
     31     */
     32    private $ignoreFirstRewind = true;
    2833
    2934    // these 3 properties take part of the performance optimization to avoid redoing the same work in all iterations
    30     private string $rootPath;
    31     private string $subPath;
    32     private string $directorySeparator = '/';
     35    private $rootPath;
     36    private $subPath;
     37    private $directorySeparator = '/';
    3338
    3439    /**
     
    5156    /**
    5257     * Return an instance of SplFileInfo with support for relative paths.
     58     *
     59     * @return SplFileInfo
    5360     */
    54     public function current(): SplFileInfo
     61    #[\ReturnTypeWillChange]
     62    public function current()
    5563    {
    5664        // the logic here avoids redoing the same work in all iterations
    5765
    58         if (!isset($this->subPath)) {
    59             $this->subPath = $this->getSubPath();
     66        if (null === $subPathname = $this->subPath) {
     67            $subPathname = $this->subPath = $this->getSubPath();
    6068        }
    61         $subPathname = $this->subPath;
    6269        if ('' !== $subPathname) {
    6370            $subPathname .= $this->directorySeparator;
     
    7279    }
    7380
    74     public function hasChildren(bool $allowLinks = false): bool
     81    /**
     82     * @param bool $allowLinks
     83     *
     84     * @return bool
     85     */
     86    #[\ReturnTypeWillChange]
     87    public function hasChildren($allowLinks = false)
    7588    {
    7689        $hasChildren = parent::hasChildren($allowLinks);
     
    8497
    8598            return true;
    86         } catch (\UnexpectedValueException) {
     99        } catch (\UnexpectedValueException $e) {
    87100            // If directory is unreadable and finder is set to ignore it, skip children
    88101            return false;
     
    91104
    92105    /**
     106     * @return \RecursiveDirectoryIterator
     107     *
    93108     * @throws AccessDeniedException
    94109     */
    95     public function getChildren(): \RecursiveDirectoryIterator
     110    #[\ReturnTypeWillChange]
     111    public function getChildren()
    96112    {
    97113        try {
     
    112128    }
    113129
    114     public function next(): void
     130    /**
     131     * @return void
     132     */
     133    #[\ReturnTypeWillChange]
     134    public function next()
    115135    {
    116136        $this->ignoreFirstRewind = false;
     
    119139    }
    120140
    121     public function rewind(): void
     141    /**
     142     * @return void
     143     */
     144    #[\ReturnTypeWillChange]
     145    public function rewind()
    122146    {
    123147        // some streams like FTP are not rewindable, ignore the first rewind after creation,
  • everest-backup/trunk/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php

    r2883659 r3001767  
    2323class SizeRangeFilterIterator extends \FilterIterator
    2424{
    25     private array $comparators = [];
     25    private $comparators = [];
    2626
    2727    /**
     
    3838    /**
    3939     * Filters the iterator values.
     40     *
     41     * @return bool
    4042     */
    41     public function accept(): bool
     43    #[\ReturnTypeWillChange]
     44    public function accept()
    4245    {
    4346        $fileinfo = $this->current();
  • everest-backup/trunk/vendor/symfony/finder/Iterator/SortableIterator.php

    r2980292 r3001767  
    2828    public const SORT_BY_MODIFIED_TIME = 5;
    2929    public const SORT_BY_NAME_NATURAL = 6;
    30     public const SORT_BY_NAME_CASE_INSENSITIVE = 7;
    31     public const SORT_BY_NAME_NATURAL_CASE_INSENSITIVE = 8;
    32     public const SORT_BY_EXTENSION = 9;
    33     public const SORT_BY_SIZE = 10;
    3430
    35     /** @var \Traversable<string, \SplFileInfo> */
    36     private \Traversable $iterator;
    37     private \Closure|int $sort;
     31    private $iterator;
     32    private $sort;
    3833
    3934    /**
     
    4338     * @throws \InvalidArgumentException
    4439     */
    45     public function __construct(\Traversable $iterator, int|callable $sort, bool $reverseOrder = false)
     40    public function __construct(\Traversable $iterator, $sort, bool $reverseOrder = false)
    4641    {
    4742        $this->iterator = $iterator;
     
    4944
    5045        if (self::SORT_BY_NAME === $sort) {
    51             $this->sort = static fn (\SplFileInfo $a, \SplFileInfo $b) => $order * strcmp($a->getRealPath() ?: $a->getPathname(), $b->getRealPath() ?: $b->getPathname());
     46            $this->sort = static function (\SplFileInfo $a, \SplFileInfo $b) use ($order) {
     47                return $order * strcmp($a->getRealPath() ?: $a->getPathname(), $b->getRealPath() ?: $b->getPathname());
     48            };
    5249        } elseif (self::SORT_BY_NAME_NATURAL === $sort) {
    53             $this->sort = static fn (\SplFileInfo $a, \SplFileInfo $b) => $order * strnatcmp($a->getRealPath() ?: $a->getPathname(), $b->getRealPath() ?: $b->getPathname());
    54         } elseif (self::SORT_BY_NAME_CASE_INSENSITIVE === $sort) {
    55             $this->sort = static fn (\SplFileInfo $a, \SplFileInfo $b) => $order * strcasecmp($a->getRealPath() ?: $a->getPathname(), $b->getRealPath() ?: $b->getPathname());
    56         } elseif (self::SORT_BY_NAME_NATURAL_CASE_INSENSITIVE === $sort) {
    57             $this->sort = static fn (\SplFileInfo $a, \SplFileInfo $b) => $order * strnatcasecmp($a->getRealPath() ?: $a->getPathname(), $b->getRealPath() ?: $b->getPathname());
     50            $this->sort = static function (\SplFileInfo $a, \SplFileInfo $b) use ($order) {
     51                return $order * strnatcmp($a->getRealPath() ?: $a->getPathname(), $b->getRealPath() ?: $b->getPathname());
     52            };
    5853        } elseif (self::SORT_BY_TYPE === $sort) {
    5954            $this->sort = static function (\SplFileInfo $a, \SplFileInfo $b) use ($order) {
     
    6762            };
    6863        } elseif (self::SORT_BY_ACCESSED_TIME === $sort) {
    69             $this->sort = static fn (\SplFileInfo $a, \SplFileInfo $b) => $order * ($a->getATime() - $b->getATime());
     64            $this->sort = static function (\SplFileInfo $a, \SplFileInfo $b) use ($order) {
     65                return $order * ($a->getATime() - $b->getATime());
     66            };
    7067        } elseif (self::SORT_BY_CHANGED_TIME === $sort) {
    71             $this->sort = static fn (\SplFileInfo $a, \SplFileInfo $b) => $order * ($a->getCTime() - $b->getCTime());
     68            $this->sort = static function (\SplFileInfo $a, \SplFileInfo $b) use ($order) {
     69                return $order * ($a->getCTime() - $b->getCTime());
     70            };
    7271        } elseif (self::SORT_BY_MODIFIED_TIME === $sort) {
    73             $this->sort = static fn (\SplFileInfo $a, \SplFileInfo $b) => $order * ($a->getMTime() - $b->getMTime());
    74         } elseif (self::SORT_BY_EXTENSION === $sort) {
    75             $this->sort = static fn (\SplFileInfo $a, \SplFileInfo $b) => $order * strnatcmp($a->getExtension(), $b->getExtension());
    76         } elseif (self::SORT_BY_SIZE === $sort) {
    77             $this->sort = static fn (\SplFileInfo $a, \SplFileInfo $b) => $order * ($a->getSize() - $b->getSize());
     72            $this->sort = static function (\SplFileInfo $a, \SplFileInfo $b) use ($order) {
     73                return $order * ($a->getMTime() - $b->getMTime());
     74            };
    7875        } elseif (self::SORT_BY_NONE === $sort) {
    7976            $this->sort = $order;
    8077        } elseif (\is_callable($sort)) {
    81             $this->sort = $reverseOrder ? static fn (\SplFileInfo $a, \SplFileInfo $b) => -$sort($a, $b) : $sort(...);
     78            $this->sort = $reverseOrder ? static function (\SplFileInfo $a, \SplFileInfo $b) use ($sort) { return -$sort($a, $b); } : $sort;
    8279        } else {
    8380            throw new \InvalidArgumentException('The SortableIterator takes a PHP callable or a valid built-in sort algorithm as an argument.');
     
    8582    }
    8683
    87     public function getIterator(): \Traversable
     84    /**
     85     * @return \Traversable<string, \SplFileInfo>
     86     */
     87    #[\ReturnTypeWillChange]
     88    public function getIterator()
    8889    {
    8990        if (1 === $this->sort) {
  • everest-backup/trunk/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php

    r2980292 r3001767  
    1414use Symfony\Component\Finder\Gitignore;
    1515
    16 /**
    17  * @extends \FilterIterator<string, \SplFileInfo>
    18  */
    1916final class VcsIgnoredFilterIterator extends \FilterIterator
    2017{
     
    3431    private $ignoredPathsCache = [];
    3532
    36     /**
    37      * @param \Iterator<string, \SplFileInfo> $iterator
    38      */
    3933    public function __construct(\Iterator $iterator, string $baseDir)
    4034    {
    4135        $this->baseDir = $this->normalizePath($baseDir);
    42 
    43         foreach ($this->parentDirectoriesUpwards($this->baseDir) as $parentDirectory) {
    44             if (@is_dir("{$parentDirectory}/.git")) {
    45                 $this->baseDir = $parentDirectory;
    46                 break;
    47             }
    48         }
    4936
    5037        parent::__construct($iterator);
     
    7259        $ignored = false;
    7360
    74         foreach ($this->parentDirectoriesDownwards($fileRealPath) as $parentDirectory) {
     61        foreach ($this->parentsDirectoryDownward($fileRealPath) as $parentDirectory) {
    7562            if ($this->isIgnored($parentDirectory)) {
    7663                // rules in ignored directories are ignored, no need to check further.
     
    10390     * @return list<string>
    10491     */
    105     private function parentDirectoriesUpwards(string $from): array
     92    private function parentsDirectoryDownward(string $fileRealPath): array
    10693    {
    10794        $parentDirectories = [];
    10895
    109         $parentDirectory = $from;
     96        $parentDirectory = $fileRealPath;
    11097
    11198        while (true) {
     
    117104            }
    118105
    119             $parentDirectories[] = $parentDirectory = $newParentDirectory;
     106            $parentDirectory = $newParentDirectory;
     107
     108            if (0 !== strpos($parentDirectory, $this->baseDir)) {
     109                break;
     110            }
     111
     112            $parentDirectories[] = $parentDirectory;
    120113        }
    121114
    122         return $parentDirectories;
    123     }
    124 
    125     private function parentDirectoriesUpTo(string $from, string $upTo): array
    126     {
    127         return array_filter(
    128             $this->parentDirectoriesUpwards($from),
    129             static fn (string $directory): bool => str_starts_with($directory, $upTo)
    130         );
    131     }
    132 
    133     /**
    134      * @return list<string>
    135      */
    136     private function parentDirectoriesDownwards(string $fileRealPath): array
    137     {
    138         return array_reverse(
    139             $this->parentDirectoriesUpTo($fileRealPath, $this->baseDir)
    140         );
     115        return array_reverse($parentDirectories);
    141116    }
    142117
  • everest-backup/trunk/vendor/symfony/finder/SplFileInfo.php

    r2883659 r3001767  
    1919class SplFileInfo extends \SplFileInfo
    2020{
    21     private string $relativePath;
    22     private string $relativePathname;
     21    private $relativePath;
     22    private $relativePathname;
    2323
    2424    /**
     
    3838     *
    3939     * This path does not contain the file name.
     40     *
     41     * @return string
    4042     */
    41     public function getRelativePath(): string
     43    public function getRelativePath()
    4244    {
    4345        return $this->relativePath;
     
    4850     *
    4951     * This path contains the file name.
     52     *
     53     * @return string
    5054     */
    51     public function getRelativePathname(): string
     55    public function getRelativePathname()
    5256    {
    5357        return $this->relativePathname;
     
    6468     * Returns the contents of the file.
    6569     *
     70     * @return string
     71     *
    6672     * @throws \RuntimeException
    6773     */
    68     public function getContents(): string
     74    public function getContents()
    6975    {
    7076        set_error_handler(function ($type, $msg) use (&$error) { $error = $msg; });
  • everest-backup/trunk/vendor/symfony/finder/composer.json

    r2980292 r3001767  
    1717    ],
    1818    "require": {
    19         "php": ">=8.1"
    20     },
    21     "require-dev": {
    22         "symfony/filesystem": "^6.0"
     19        "php": ">=7.2.5",
     20        "symfony/deprecation-contracts": "^2.1|^3",
     21        "symfony/polyfill-php80": "^1.16"
    2322    },
    2423    "autoload": {
  • everest-backup/trunk/vendor/symfony/polyfill-php80/LICENSE

    r2871628 r3001767  
    1 Copyright (c) 2020 Fabien Potencier
     1Copyright (c) 2020-present Fabien Potencier
    22
    33Permission is hereby granted, free of charge, to any person obtaining a copy
  • everest-backup/trunk/vendor/symfony/polyfill-php80/composer.json

    r2871628 r3001767  
    3131    "extra": {
    3232        "branch-alias": {
    33             "dev-main": "1.27-dev"
     33            "dev-main": "1.28-dev"
    3434        },
    3535        "thanks": {
Note: See TracChangeset for help on using the changeset viewer.