gpt4 book ai didi

symfony - 如何向 symfony 控制台添加新的命令行选项

转载 作者:行者123 更新时间:2023-12-04 08:50:32 25 4
gpt4 key购买 nike

我不是 Symfony 专家,我需要在 symfony 控制台中添加一个新的控制台选项 --country=XX

这不是一个命令,它是一个选项,它改变任何命令的运行方式,通过选择不同的数据库来执行,通过构建诸如 api_frapi_deapi_es

我试图寻找一种方法来做到这一点,但不幸的是一切都回到了添加命令,这不是我想要做的,我想添加一个选项。

我正在构建一个 API,其中一部分使用 Symfony 2.8,另一部分使用 Symfony 3.x。我想这两个版本的答案可能相同,但是如果您知道如何在两个版本中执行此操作并且它们是分开的,请告诉我。

最佳答案

你可以像这个例子一样添加一个 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)
);
}
}

然后将其添加为服务:

<?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>

您可以查看此文档,在“添加全局命令选项”一章中,您可以找到您需要的内容: http://php-and-symfony.matthiasnoback.nl/2013/11/symfony2-add-a-global-option-to-console-commands-and-generate-pid-file/

关于symfony - 如何向 symfony 控制台添加新的命令行选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40674814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com