Plugin Directory

Changeset 2447256


Ignore:
Timestamp:
12/29/2020 09:32:53 AM (5 years ago)
Author:
dam6pl
Message:

version 1.0.1

Location:
advanced-database-replacer
Files:
18 edited
1 copied

Legend:

Unmodified
Added
Removed
  • advanced-database-replacer/tags/1.0.1/adr.php

    r2447062 r2447256  
    44 * Plugin Name: Advanced Database Replacer
    55 * Description: The most advanced WordPress database replacer plugin. A user-friendly and powerful tool to fast modify WordPress posts, taxonomies, and meta.
    6  * Version: 1.0.0
     6 * Version: 1.0.1
    77 * Author: Untitled Plugin
    88 * Author URI: https://untitledplugin.com
  • advanced-database-replacer/tags/1.0.1/readme.txt

    r2447062 r2447256  
    55Tested up to: 5.6
    66Requires PHP: 7.1.0
    7 Stable tag: trunk
     7Stable tag: 1.0.1
    88License: GNU General Public License v3.0
    99License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    3131Advanced Database Replacer allows you to fast and easily update a lot of data in the database. The plugin provides a user-friendly form that allows you to update posts, taxonomies, users (and many more) data without any programming knowledge. Plugin based on the provided data automatically prepares the SQL (Structured Query Language) query that allows an update of many records at the same time.
    3232
    33 = I want to use ADR but I don\'t know how to back up my database =
     33= I want to use ADR but I don't know how to back up my database =
    3434If you are not an IT specialist then you should use some extra plugin to create a backup, like WP Database Backup, and then start the replacement process. You can use the condition group to fit your query and limit the data that can be affected by the replacing process.
    3535
     
    4343
    4444== Changelog ==
     45= 1.0.1 =
     46* Update texts and translations,
     47* Small refactor of Builder class.
     48
    4549= 1.0.0 =
    4650* First release of the plugin, all options are ready for you!
  • advanced-database-replacer/tags/1.0.1/src/Dashboard/Translation.php

    r2447062 r2447256  
    1616                'banner'  => [
    1717                    \__('Save replacement templates for fast back to them and repeat!', 'adr'),
    18                     \__('Create replacement with infinity number of conditions groups for better fit your query!', 'adr'),
     18                    \__('Create a replacement with an infinite number of conditions groups to better fit your query!', 'adr'),
    1919                    \__('Use advanced replacement methods like increase or decrease numbers!', 'adr'),
    2020                ],
     
    3232                'prev_step'                => \__('Previous step', 'adr'),
    3333                'next_step'                => \__('Next step', 'adr'),
    34                 'remove_group'             => \__('Remove condition group', 'adr'),
    35                 'remove_group_confirm'     => \__('Are you sure do you want to remove this group?', 'adr'),
    36                 'remove_group_confirm_yes' => \__('Yes, remove this group', 'adr'),
     34                'remove_group'             => \__('Remove this condition group', 'adr'),
     35                'remove_group_confirm'     => \__('Are you sure do you want to remove this condition group?', 'adr'),
     36                'remove_group_confirm_yes' => \__('Yes, remove', 'adr'),
    3737                'remove_group_confirm_no'  => \__('No, cancel', 'adr'),
    3838                'new_group'                => \__('Add new condition group', 'adr'),
    3939                'steps'                    => [
    40                     'target'     => \__('Target', 'adr'),
    41                     'conditions' => \__('Conditions', 'adr'),
    42                     'update'     => \__('Update', 'adr'),
    43                     'replace'    => \__('Replace', 'adr'),
     40                    'target'     => \__('Define target', 'adr'),
     41                    'conditions' => \__('Add conditions', 'adr'),
     42                    'update'     => \__('Update way', 'adr'),
     43                    'replace'    => \__('Let\'s replace', 'adr'),
    4444                ],
    4545                'select_placeholder'       => \__('Select value', 'adr'),
     
    4949            'replace' => [
    5050                'confirm' => [
    51                     'title'   => \__('Confirm execution', 'adr'),
     51                    'title'   => \__('Read the message and confirm execution', 'adr'),
    5252                    'message' => \__('Are you sure do you want to execute the query? This action cannot be
    5353                        undone and can make extremely dangerous changes in the database that can break
    54                         the website. Please, make sure that you created a database backup before the run.', 'adr'),
     54                        the website. Please, make sure again that you created a database backup before the run.', 'adr'),
    5555                    'yes' => \__('Yes, execute', 'adr'),
    5656                    'no'  => \__('No, get me back', 'adr'),
    5757                ],
    58                 'message' => \__('Here you can review all provided data and valid if anything is wrong.', 'adr'),
     58                'message' => \__('Here you can review all data that has been generated by the form and validate if any
     59                    of them are invalid. Based on this data processor will prepare a SQL query that will
     60                    update the database.', 'adr'),
    5961                'run_dry' => \__('Run dry query', 'adr'),
    60                 'run'     => \__('Run query', 'adr'),
     62                'run'     => \__('Run real query', 'adr'),
    6163                'toggle'  => \__('Toggle SQL query', 'adr'),
    6264                'modal'   => [
    63                     'success' => \__('Your run has been executed successful!', 'adr'),
    64                     'error'   => \__('Your run has been not executed successful!', 'adr'),
     65                    'success' => \__('Your run has been executed successfully!', 'adr'),
     66                    'error'   => \__('Your run has been not executed successfully!', 'adr'),
    6567                ],
    6668            ],
  • advanced-database-replacer/tags/1.0.1/src/Replacer/Builder/Builder.php

    r2447062 r2447256  
    4242        );
    4343
    44         $formTargets = Replacer::Instance()->getForm()->getTargets();
    45         $target = (string) Sanitizer::sanitizePost(
     44        $form = Replacer::Instance()->getForm();
     45        $targetName = (string) Sanitizer::sanitizePost(
    4646            'target.target_type',
    4747            FILTER_SANITIZE_STRING,
    4848            [],
    49             \array_keys($formTargets)
     49            \array_keys($form->getTargets())
    5050        );
     51        $target = $form->getTarget($targetName);
    5152
    52         if (null === $target || false === $formTargets[$target] instanceof TargetInterface) {
    53             \wp_send_json_error(\__('Invalid target name!', 'adr'));
     53        if (null === $target) {
     54            \wp_send_json_error(\__('Form target contain empty value!', 'adr'));
    5455        }
    5556
    56         $formTargets[(string) $target]->executeQuery($queryProcessor);
     57        $target->executeQuery($queryProcessor);
    5758
    5859        \wp_send_json_success($queryProcessor->execute());
  • advanced-database-replacer/tags/1.0.1/src/Replacer/Form/AbstractForm.php

    r2447062 r2447256  
    4343    {
    4444        return (array) \apply_filters('adr\targets', $this->targets);
     45    }
     46
     47    public function getTarget(string $name): ?TargetInterface
     48    {
     49        return $this->getTargets()[$name] ?? null;
    4550    }
    4651
     
    103108                    'label' => \__('In the first step of the replacement, you have to decide that type of database
    104109                        data will be replaced. The form will guide how to select only that content that you really want
    105                         to update. And please remember, everything what will happen at the end of this form can make
     110                        to update. And please remember, everything that will happen at the end of this form can make
    106111                        irreversible changes in the database, so before we will start, please make sure that you
    107112                        backup your database.', 'adr'),
  • advanced-database-replacer/tags/1.0.1/src/Replacer/Form/Condition/Post/OwnerCondition.php

    r2447062 r2447256  
    1515    public function __construct(AbstractTarget $target)
    1616    {
    17         parent::__construct('owner_user', \__('Owner by', 'adr'), false, $target);
     17        parent::__construct('owner_user', \__('Post owner', 'adr'), false, $target);
    1818
    1919        \add_action("wp_ajax_{$this->getName()}_ids", [$this, 'handleAsyncIdsSelect']);
     
    2727                [
    2828                    'conditions'             => [["{$this->target->getName()}_condition_type", $this->getName()]],
    29                     'label'                  => \__('Owner by', 'adr'),
     29                    'label'                  => \__('Post owner', 'adr'),
    3030                    'multiple'               => false,
    3131                    'values_callback'        => "{$this->getName()}_ids",
  • advanced-database-replacer/tags/1.0.1/vendor/autoload.php

    r2447062 r2447256  
    55require_once __DIR__ . '/composer/autoload_real.php';
    66
    7 return ComposerAutoloaderInit2cfd5c35fbd944e956574435de08143a::getLoader();
     7return ComposerAutoloaderInit5c32bafaeeb7e61524d88724036f6b9f::getLoader();
  • advanced-database-replacer/tags/1.0.1/vendor/composer/autoload_real.php

    r2447062 r2447256  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInit2cfd5c35fbd944e956574435de08143a
     5class ComposerAutoloaderInit5c32bafaeeb7e61524d88724036f6b9f
    66{
    77    private static $loader;
     
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInit2cfd5c35fbd944e956574435de08143a', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit5c32bafaeeb7e61524d88724036f6b9f', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader();
    29         spl_autoload_unregister(array('ComposerAutoloaderInit2cfd5c35fbd944e956574435de08143a', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit5c32bafaeeb7e61524d88724036f6b9f', 'loadClassLoader'));
    3030
    3131        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
     
    3333            require __DIR__ . '/autoload_static.php';
    3434
    35             call_user_func(\Composer\Autoload\ComposerStaticInit2cfd5c35fbd944e956574435de08143a::getInitializer($loader));
     35            call_user_func(\Composer\Autoload\ComposerStaticInit5c32bafaeeb7e61524d88724036f6b9f::getInitializer($loader));
    3636        } else {
    3737            $map = require __DIR__ . '/autoload_namespaces.php';
     
    5454
    5555        if ($useStaticLoader) {
    56             $includeFiles = Composer\Autoload\ComposerStaticInit2cfd5c35fbd944e956574435de08143a::$files;
     56            $includeFiles = Composer\Autoload\ComposerStaticInit5c32bafaeeb7e61524d88724036f6b9f::$files;
    5757        } else {
    5858            $includeFiles = require __DIR__ . '/autoload_files.php';
    5959        }
    6060        foreach ($includeFiles as $fileIdentifier => $file) {
    61             composerRequire2cfd5c35fbd944e956574435de08143a($fileIdentifier, $file);
     61            composerRequire5c32bafaeeb7e61524d88724036f6b9f($fileIdentifier, $file);
    6262        }
    6363
     
    6666}
    6767
    68 function composerRequire2cfd5c35fbd944e956574435de08143a($fileIdentifier, $file)
     68function composerRequire5c32bafaeeb7e61524d88724036f6b9f($fileIdentifier, $file)
    6969{
    7070    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
  • advanced-database-replacer/tags/1.0.1/vendor/composer/autoload_static.php

    r2447062 r2447256  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInit2cfd5c35fbd944e956574435de08143a
     7class ComposerStaticInit5c32bafaeeb7e61524d88724036f6b9f
    88{
    99    public static $files = array (
     
    5656    {
    5757        return \Closure::bind(function () use ($loader) {
    58             $loader->prefixLengthsPsr4 = ComposerStaticInit2cfd5c35fbd944e956574435de08143a::$prefixLengthsPsr4;
    59             $loader->prefixDirsPsr4 = ComposerStaticInit2cfd5c35fbd944e956574435de08143a::$prefixDirsPsr4;
    60             $loader->classMap = ComposerStaticInit2cfd5c35fbd944e956574435de08143a::$classMap;
     58            $loader->prefixLengthsPsr4 = ComposerStaticInit5c32bafaeeb7e61524d88724036f6b9f::$prefixLengthsPsr4;
     59            $loader->prefixDirsPsr4 = ComposerStaticInit5c32bafaeeb7e61524d88724036f6b9f::$prefixDirsPsr4;
     60            $loader->classMap = ComposerStaticInit5c32bafaeeb7e61524d88724036f6b9f::$classMap;
    6161
    6262        }, null, ClassLoader::class);
  • advanced-database-replacer/trunk/adr.php

    r2447062 r2447256  
    44 * Plugin Name: Advanced Database Replacer
    55 * Description: The most advanced WordPress database replacer plugin. A user-friendly and powerful tool to fast modify WordPress posts, taxonomies, and meta.
    6  * Version: 1.0.0
     6 * Version: 1.0.1
    77 * Author: Untitled Plugin
    88 * Author URI: https://untitledplugin.com
  • advanced-database-replacer/trunk/readme.txt

    r2447062 r2447256  
    55Tested up to: 5.6
    66Requires PHP: 7.1.0
    7 Stable tag: trunk
     7Stable tag: 1.0.1
    88License: GNU General Public License v3.0
    99License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    3131Advanced Database Replacer allows you to fast and easily update a lot of data in the database. The plugin provides a user-friendly form that allows you to update posts, taxonomies, users (and many more) data without any programming knowledge. Plugin based on the provided data automatically prepares the SQL (Structured Query Language) query that allows an update of many records at the same time.
    3232
    33 = I want to use ADR but I don\'t know how to back up my database =
     33= I want to use ADR but I don't know how to back up my database =
    3434If you are not an IT specialist then you should use some extra plugin to create a backup, like WP Database Backup, and then start the replacement process. You can use the condition group to fit your query and limit the data that can be affected by the replacing process.
    3535
     
    4343
    4444== Changelog ==
     45= 1.0.1 =
     46* Update texts and translations,
     47* Small refactor of Builder class.
     48
    4549= 1.0.0 =
    4650* First release of the plugin, all options are ready for you!
  • advanced-database-replacer/trunk/src/Dashboard/Translation.php

    r2447062 r2447256  
    1616                'banner'  => [
    1717                    \__('Save replacement templates for fast back to them and repeat!', 'adr'),
    18                     \__('Create replacement with infinity number of conditions groups for better fit your query!', 'adr'),
     18                    \__('Create a replacement with an infinite number of conditions groups to better fit your query!', 'adr'),
    1919                    \__('Use advanced replacement methods like increase or decrease numbers!', 'adr'),
    2020                ],
     
    3232                'prev_step'                => \__('Previous step', 'adr'),
    3333                'next_step'                => \__('Next step', 'adr'),
    34                 'remove_group'             => \__('Remove condition group', 'adr'),
    35                 'remove_group_confirm'     => \__('Are you sure do you want to remove this group?', 'adr'),
    36                 'remove_group_confirm_yes' => \__('Yes, remove this group', 'adr'),
     34                'remove_group'             => \__('Remove this condition group', 'adr'),
     35                'remove_group_confirm'     => \__('Are you sure do you want to remove this condition group?', 'adr'),
     36                'remove_group_confirm_yes' => \__('Yes, remove', 'adr'),
    3737                'remove_group_confirm_no'  => \__('No, cancel', 'adr'),
    3838                'new_group'                => \__('Add new condition group', 'adr'),
    3939                'steps'                    => [
    40                     'target'     => \__('Target', 'adr'),
    41                     'conditions' => \__('Conditions', 'adr'),
    42                     'update'     => \__('Update', 'adr'),
    43                     'replace'    => \__('Replace', 'adr'),
     40                    'target'     => \__('Define target', 'adr'),
     41                    'conditions' => \__('Add conditions', 'adr'),
     42                    'update'     => \__('Update way', 'adr'),
     43                    'replace'    => \__('Let\'s replace', 'adr'),
    4444                ],
    4545                'select_placeholder'       => \__('Select value', 'adr'),
     
    4949            'replace' => [
    5050                'confirm' => [
    51                     'title'   => \__('Confirm execution', 'adr'),
     51                    'title'   => \__('Read the message and confirm execution', 'adr'),
    5252                    'message' => \__('Are you sure do you want to execute the query? This action cannot be
    5353                        undone and can make extremely dangerous changes in the database that can break
    54                         the website. Please, make sure that you created a database backup before the run.', 'adr'),
     54                        the website. Please, make sure again that you created a database backup before the run.', 'adr'),
    5555                    'yes' => \__('Yes, execute', 'adr'),
    5656                    'no'  => \__('No, get me back', 'adr'),
    5757                ],
    58                 'message' => \__('Here you can review all provided data and valid if anything is wrong.', 'adr'),
     58                'message' => \__('Here you can review all data that has been generated by the form and validate if any
     59                    of them are invalid. Based on this data processor will prepare a SQL query that will
     60                    update the database.', 'adr'),
    5961                'run_dry' => \__('Run dry query', 'adr'),
    60                 'run'     => \__('Run query', 'adr'),
     62                'run'     => \__('Run real query', 'adr'),
    6163                'toggle'  => \__('Toggle SQL query', 'adr'),
    6264                'modal'   => [
    63                     'success' => \__('Your run has been executed successful!', 'adr'),
    64                     'error'   => \__('Your run has been not executed successful!', 'adr'),
     65                    'success' => \__('Your run has been executed successfully!', 'adr'),
     66                    'error'   => \__('Your run has been not executed successfully!', 'adr'),
    6567                ],
    6668            ],
  • advanced-database-replacer/trunk/src/Replacer/Builder/Builder.php

    r2447062 r2447256  
    4242        );
    4343
    44         $formTargets = Replacer::Instance()->getForm()->getTargets();
    45         $target = (string) Sanitizer::sanitizePost(
     44        $form = Replacer::Instance()->getForm();
     45        $targetName = (string) Sanitizer::sanitizePost(
    4646            'target.target_type',
    4747            FILTER_SANITIZE_STRING,
    4848            [],
    49             \array_keys($formTargets)
     49            \array_keys($form->getTargets())
    5050        );
     51        $target = $form->getTarget($targetName);
    5152
    52         if (null === $target || false === $formTargets[$target] instanceof TargetInterface) {
    53             \wp_send_json_error(\__('Invalid target name!', 'adr'));
     53        if (null === $target) {
     54            \wp_send_json_error(\__('Form target contain empty value!', 'adr'));
    5455        }
    5556
    56         $formTargets[(string) $target]->executeQuery($queryProcessor);
     57        $target->executeQuery($queryProcessor);
    5758
    5859        \wp_send_json_success($queryProcessor->execute());
  • advanced-database-replacer/trunk/src/Replacer/Form/AbstractForm.php

    r2447062 r2447256  
    4343    {
    4444        return (array) \apply_filters('adr\targets', $this->targets);
     45    }
     46
     47    public function getTarget(string $name): ?TargetInterface
     48    {
     49        return $this->getTargets()[$name] ?? null;
    4550    }
    4651
     
    103108                    'label' => \__('In the first step of the replacement, you have to decide that type of database
    104109                        data will be replaced. The form will guide how to select only that content that you really want
    105                         to update. And please remember, everything what will happen at the end of this form can make
     110                        to update. And please remember, everything that will happen at the end of this form can make
    106111                        irreversible changes in the database, so before we will start, please make sure that you
    107112                        backup your database.', 'adr'),
  • advanced-database-replacer/trunk/src/Replacer/Form/Condition/Post/OwnerCondition.php

    r2447062 r2447256  
    1515    public function __construct(AbstractTarget $target)
    1616    {
    17         parent::__construct('owner_user', \__('Owner by', 'adr'), false, $target);
     17        parent::__construct('owner_user', \__('Post owner', 'adr'), false, $target);
    1818
    1919        \add_action("wp_ajax_{$this->getName()}_ids", [$this, 'handleAsyncIdsSelect']);
     
    2727                [
    2828                    'conditions'             => [["{$this->target->getName()}_condition_type", $this->getName()]],
    29                     'label'                  => \__('Owner by', 'adr'),
     29                    'label'                  => \__('Post owner', 'adr'),
    3030                    'multiple'               => false,
    3131                    'values_callback'        => "{$this->getName()}_ids",
  • advanced-database-replacer/trunk/vendor/autoload.php

    r2447062 r2447256  
    55require_once __DIR__ . '/composer/autoload_real.php';
    66
    7 return ComposerAutoloaderInit2cfd5c35fbd944e956574435de08143a::getLoader();
     7return ComposerAutoloaderInit5c32bafaeeb7e61524d88724036f6b9f::getLoader();
  • advanced-database-replacer/trunk/vendor/composer/autoload_real.php

    r2447062 r2447256  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInit2cfd5c35fbd944e956574435de08143a
     5class ComposerAutoloaderInit5c32bafaeeb7e61524d88724036f6b9f
    66{
    77    private static $loader;
     
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInit2cfd5c35fbd944e956574435de08143a', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit5c32bafaeeb7e61524d88724036f6b9f', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader();
    29         spl_autoload_unregister(array('ComposerAutoloaderInit2cfd5c35fbd944e956574435de08143a', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit5c32bafaeeb7e61524d88724036f6b9f', 'loadClassLoader'));
    3030
    3131        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
     
    3333            require __DIR__ . '/autoload_static.php';
    3434
    35             call_user_func(\Composer\Autoload\ComposerStaticInit2cfd5c35fbd944e956574435de08143a::getInitializer($loader));
     35            call_user_func(\Composer\Autoload\ComposerStaticInit5c32bafaeeb7e61524d88724036f6b9f::getInitializer($loader));
    3636        } else {
    3737            $map = require __DIR__ . '/autoload_namespaces.php';
     
    5454
    5555        if ($useStaticLoader) {
    56             $includeFiles = Composer\Autoload\ComposerStaticInit2cfd5c35fbd944e956574435de08143a::$files;
     56            $includeFiles = Composer\Autoload\ComposerStaticInit5c32bafaeeb7e61524d88724036f6b9f::$files;
    5757        } else {
    5858            $includeFiles = require __DIR__ . '/autoload_files.php';
    5959        }
    6060        foreach ($includeFiles as $fileIdentifier => $file) {
    61             composerRequire2cfd5c35fbd944e956574435de08143a($fileIdentifier, $file);
     61            composerRequire5c32bafaeeb7e61524d88724036f6b9f($fileIdentifier, $file);
    6262        }
    6363
     
    6666}
    6767
    68 function composerRequire2cfd5c35fbd944e956574435de08143a($fileIdentifier, $file)
     68function composerRequire5c32bafaeeb7e61524d88724036f6b9f($fileIdentifier, $file)
    6969{
    7070    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
  • advanced-database-replacer/trunk/vendor/composer/autoload_static.php

    r2447062 r2447256  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInit2cfd5c35fbd944e956574435de08143a
     7class ComposerStaticInit5c32bafaeeb7e61524d88724036f6b9f
    88{
    99    public static $files = array (
     
    5656    {
    5757        return \Closure::bind(function () use ($loader) {
    58             $loader->prefixLengthsPsr4 = ComposerStaticInit2cfd5c35fbd944e956574435de08143a::$prefixLengthsPsr4;
    59             $loader->prefixDirsPsr4 = ComposerStaticInit2cfd5c35fbd944e956574435de08143a::$prefixDirsPsr4;
    60             $loader->classMap = ComposerStaticInit2cfd5c35fbd944e956574435de08143a::$classMap;
     58            $loader->prefixLengthsPsr4 = ComposerStaticInit5c32bafaeeb7e61524d88724036f6b9f::$prefixLengthsPsr4;
     59            $loader->prefixDirsPsr4 = ComposerStaticInit5c32bafaeeb7e61524d88724036f6b9f::$prefixDirsPsr4;
     60            $loader->classMap = ComposerStaticInit5c32bafaeeb7e61524d88724036f6b9f::$classMap;
    6161
    6262        }, null, ClassLoader::class);
Note: See TracChangeset for help on using the changeset viewer.