vaibhavpandeyvpz / consoler
为 symfony/console 扩展,支持使用任何 container-interop/container-interop 兼容的包。
1.0.2
2016-04-10 10:11 UTC
Requires
- php: >=5.3.0
- container-interop/container-interop: ^1.1
- symfony/console: ^2.8
Suggests
- vaibhavpandeyvpz/katora: Minimal service container implementing container-interop/container-interop interfaces.
This package is auto-updated.
Last update: 2024-09-09 18:18:33 UTC
README
为 symfony/console 扩展,支持使用任何 container-interop/container-interop 兼容的包。
安装
composer require vaibhavpandeyvpz/consoler
您可能还需要安装 vaibhavpandeyvpz/katora 以提供 Interop\Container\ContainerInterface
。为此,请运行以下命令
composer require vaibhavpandeyvpz/katora
使用方法
使用 Interop\Container\ContainerInterface
实例初始化 Consoler\Application
实例,并按常规运行。
#!/usr/bin/env php <?php require_once __DIR__ . '/vendor/autoload.php'; $app = new Consoler\Application(); $app->setContainer($container = new Katora\Container()); $container[PDO::class] = $container->share(function () { return new PDO(/** args */); }); $app->add(new SearchCommand()); $app->run();
由于 Consoler\Command
类实现了 Interop\Container\ContainerInterface
,因此您可以扩展它并如下使用容器
use Consoler\Command; use Symfony\Component\Console\Input\InputInterface as Input; use Symfony\Component\Console\Output\OutputInterface as Output; class SearchCommand extends Command { protected function execute(Input $input, Output $output) { /** @var \PDO $pdo */ $pdo = $this->get(\PDO::class); // ...more code! } }
许可证
请参阅 LICENSE.md 文件。