/var/www/vhosts/ihelp.ro/_OLD/vendor/cakephp/cakephp/src/Command
Edit: /var/www/vhosts/ihelp.ro/_OLD/vendor/cakephp/cakephp/src/Command/PluginLoadCommand.php (3587B)
io = $io;
$this->args = $args;
$plugin = $args->getArgument('plugin');
if (!$plugin) {
$this->io->err('You must provide a plugin name in CamelCase format.');
$this->io->err('To load an "Example" plugin, run `cake plugin load Example`.');
return static::CODE_ERROR;
}
$app = APP . 'Application.php';
if (file_exists($app)) {
$this->modifyApplication($app, $plugin);
return static::CODE_SUCCESS;
}
return static::CODE_ERROR;
}
/**
* Modify the application class
*
* @param string $app The Application file to modify.
* @param string $plugin The plugin name to add.
* @return void
*/
protected function modifyApplication(string $app, string $plugin): void
{
$contents = file_get_contents($app);
$append = "\n \$this->addPlugin('%s');\n";
$insert = str_replace(', []', '', sprintf($append, $plugin));
if (!preg_match('/function bootstrap\(\)(?:\s*)\:(?:\s*)void/m', $contents)) {
$this->io->err('Your Application class does not have a bootstrap() method. Please add one.');
$this->abort();
} else {
$contents = preg_replace(
'/(function bootstrap\(\)(?:\s*)\:(?:\s*)void(?:\s+)\{)/m',
'$1' . $insert,
$contents
);
}
file_put_contents($app, $contents);
$this->io->out('');
$this->io->out(sprintf('%s modified', $app));
}
/**
* Get the option parser.
*
* @param \Cake\Console\ConsoleOptionParser $parser The option parser to update
* @return \Cake\Console\ConsoleOptionParser
*/
public function buildOptionParser(ConsoleOptionParser $parser): ConsoleOptionParser
{
$parser->setDescription([
'Command for loading plugins.',
])
->addArgument('plugin', [
'help' => 'Name of the plugin to load.',
]);
return $parser;
}
}