bgaze / silex-console-provider
此软件包已被弃用且不再维护。未建议替代软件包。
Silex的CLI应用程序服务提供商
dev-master
2017-08-27 16:16 UTC
Requires
- php: >=5.6.0
- silex/silex: ~2.0
- symfony/console: ~3.0
- symfony/filesystem: ~3.0
This package is auto-updated.
Last update: 2020-01-17 16:21:32 UTC
README
为Silex提供
- 一种创建自定义控制台命令的便捷方式。
- 清除缓存命令:
$ php bin/console cache:clear
。
请查阅控制台组件文档以获取有关如何使用控制台和构建命令的更多信息。
安装
使用Composer导入提供者
$ composer require bgaze/silex-console-provider dev-master
清除缓存命令需要在cache_dir
键下定义缓存路径
$app['cache_dir'] = __DIR__ . '/../var/cache';
然后在您的应用程序中注册它
use Bgaze\Silex\Provider\ConsoleServiceProvider; $app->register(new ConsoleServiceProvider(), ['console.name' => 'My Application', 'console.version' => 'n/a']); $app['console']->add(new \Bgaze\Silex\Console\Command\ClearCacheCommand());
使用
假设您的控制台可执行文件是bin/console
,您可以调用任何命令,如下所示
$ php bin/console your:command
清除您的应用程序缓存如下
$ php bin/console cache:clear
编写命令
您的命令应扩展Bgaze\Silex\Console\Command\AbstractCommand
。
此基类提供对当前Silex应用程序的访问,在$app
受保护的属性下。
以下是一个自定义命令示例
<?php namespace MyApp\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Bgaze\Silex\Console\Command\AbstractCommand; class MyCommand extends AbstractCommand { public function isEnabled() { if (!isset($this->app['my_value'])) { return false; } return parent::isEnabled(); } protected function configure() { $this ->setName('my:command') ->setDefinition([ new InputArgument('foo', InputArgument::REQUIRED, 'A required argument'), new InputOption('bar', 'b', InputOption::VALUE_REQUIRED, 'An option with default value', 'Bar!') ]) ->setDescription('This is a demo command ...'); } protected function execute(InputInterface $input, OutputInterface $output) { $foo = $input->getArgument('foo'); $output->writeln('Foo : ' . $foo); $bar = $input->getOption('bar'); $output->writeln('Bar : ' . $bar); } }
致谢
此提供者主要受codito/silex-console-provider的启发