簡體   English   中英

Magento 2:如何從另一個CLI命令類運行CLI命令?

[英]Magento 2: How to run CLI command from another CLI command class?

我正在開發一個自定義CLI命令,我想知道從PHP代碼調用其他命令的最佳方法是什么(沒有shell_exec()或類似命令)。
例如:
當運行“php bin / magento my:custom:command”時,它會做它的事情並最終運行“php bin / magento cache:flush”。

有任何想法嗎?

謝謝。

Magento CLI構建於Symfony控制台之上。 您可以使用此組件加載和運行其他命令:

$arguments = new ArrayInput(['command' => 'my:custom:command']);
$this->getApplication()->find('my:custom:command')->run($arguments, $output);

$arguments = new ArrayInput(['command' => 'cache:flush']);
$this->getApplication()->find('cache:flush')->run($arguments, $output);

更多信息在這里 雖然這對您來說不太可能有問題,但請注意文檔表明這並不總是最好的主意:

大多數情況下,從未在命令行上執行的代碼調用命令不是一個好主意。 主要原因是命令的輸出針對控制台進行了優化,而不是傳遞給其他命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM