我不是Symfony的专家,我需要--country=XX在symfony控制台中添加一个新的控制台选项.
此心不是一个命令,它的一个选项,其改变如何任何命令运行时,通过选择不同的数据库通过构建doctrine.dbal.dbname参数如操作上执行api_fr,api_de,api_es等.
我试图寻找一种方法来做到这一点,但不幸的是一切都回来添加命令,这不是我想要做的,我想添加一个选项.
我正在构建一个API,其中一部分与Symfony 2.8配合使用,另一部分则使用Symfony 3.x. 我想两个版本的答案可能相同,但如果您知道如何在两个版本中执行此操作并且它们是分开的,请告诉我.
小智 7
你可以像这个例子一样添加一个EventListener:
use Symfony\Component\Console\Input\InputOption;
class YourOptionEventListener
{
public function onConsoleCommand(ConsoleCommandEvent $event)
{
$inputDefinition = $event->getCommand()->getApplication()->getDefinition();
// add the option to the application's input definition
$inputDefinition->addOption(
new InputOption('yourOption', null, InputOption::VALUE_OPTIONAL, 'Description of the option', null)
);
}
}
Run Code Online (Sandbox Code Playgroud)
然后将其添加为服务:
<?xml version="1.0" ?>
<container ...>
<services>
<service id="app_yourOption.console_event_listener"
class="App\YourOptionBundle\EventListener\YourOptionEventListener">
<tag name="kernel.event_listener" event="console.command" method="onConsoleCommand" />
</service>
</services>
</container>
Run Code Online (Sandbox Code Playgroud)
您可以查看此文档,在"添加全局命令选项"一章中,您可以找到所需内容:http: //php-and-symfony.matthiasnoback.nl/2013/11/symfony2-add-a-global-option -to-控制台的命令和-生成-PID-文件/
| 归档时间: |
|
| 查看次数: |
458 次 |
| 最近记录: |