为 symfony/console 扩展,支持使用任何 container-interop/container-interop 兼容的包。

1.0.2 2016-04-10 10:11 UTC

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 文件。