xervice / console
Installs: 46 653
Dependents: 6
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 1
Open Issues: 0
Requires
- symfony/console: ^3.4|^4.0|^5.0|^6.0
- xervice/core: ^4.0.0
Requires (Dev)
- codeception/codeception: *
- phpstan/phpstan: ^0.12.0
- symfony/var-dumper: *
README
Console service based on symfony console for Xervice.
Installation
composer require xervice/console
Configuration
There is nothing to configure. But to add your commands, you have to extend the console module and overwrite "getCommandList" method in the dependency provider.
<?php namespace App\Console; use Xervice\Console\ConsoleDependencyProvider as XerviceConsoleDependencyProvider; class ConsoleDependencyProvider extends XerviceConsoleDependencyProvider { /** * @return array */ protected function getCommandList(): array { return [ new MyCommand() ]; } }
Usage
vendor/bin/xervice <command>
New Command
<?php namespace App\MyModule\Communication\Console\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Xervice\Console\Business\Model\Command\AbstractCommand; /** * @method \App\MyModule\Business\MyModuleFacade getFacade() * @method \App\MyModule\Communication\MyModuleCommunicationFactory getFactory() */ class MyCommand extends AbstractCommand { /** * @throws \Symfony\Component\Console\Exception\InvalidArgumentException */ protected function configure(): void { $this ->setName('mymodule:mycommand') ->setDescription('Command description'); } /** * @param \Symfony\Component\Console\Input\InputInterface $input * @param \Symfony\Component\Console\Output\OutputInterface $output * * @return int|void * @throws \Core\Locator\Dynamic\ServiceNotParseable */ public function run(InputInterface $input, OutputInterface $output) { $this->getFacade()->runMyCommand($output); } }