bgaze/silex-console-provider

此软件包已被弃用且不再维护。未建议替代软件包。

Silex的CLI应用程序服务提供商

dev-master 2017-08-27 16:16 UTC

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的启发

更多信息