PHP code example of suin / cakephp-subcommand-injector
1. Go to this page and download the library: Download suin/cakephp-subcommand-injector library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
suin / cakephp-subcommand-injector example snippets
class ExampleShell extends \Cake\Console\Shell
{
/**
* @var SubcommandInjector
*/
private $subcommandInjector;
public function __construct(
\Cake\Console\ConsoleIo $io = null,
\Cake\ORM\Locator\LocatorInterface $locator = null
)
{
parent::__construct($io, $locator);
// 1. Initialize subcommand injector as a member of Shell class
$this->subcommandInjector = SubcommandInjector::build(
// Define how you find task classes:
new TaskClassesConformingToPsr4(
__DIR__ . '/my-app/src/',
'MyApp\\',
__DIR__ . '/my-app/src/*/*Task.php'
),
// Define mapping rules between task class and subcommand name:
new NamingRuleByPatternMatching(
'MyApp\\{module_name}\\{task_name}Task',
'{module_name}:{task_name}'
)
);
}
public function initialize()
{
// 2. Add tasks to this shell
$this->subcommandInjector->addTasksTo($this);
parent::initialize();
}
public function getOptionParser()
{
$parser = parent::getOptionParser();
// 3. Add subcommands to this shell's parser
return $this->subcommandInjector->addSubcommandsTo($this, $parser);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.