Nach einiger Überlegung wählte ich die Methode runAction des Controllers (die auch von den Yii-Entwicklern empfohlen wird).
Beispiel für eine Konsolenanwendung:
\Yii::$app->runAction('webserver/update-config');
Es ist auch möglich params zu übergeben, indem eine Anordnung in als zweiten Parameter.
Ein Beispiel für einfache Parameter:
\Yii::$app->runAction('webserver/update-config', array('oneValue','anotherValue');
Hier ein Beispiel für benannte Parameter:
\Yii::$app->runAction('webserver/update-config', array('servertype'=>'oneSetting', 'serverdir'=>'anotherSettingValue')
Bitte beachten Sie, dass dies die Steuerung ein Teil des anrufenden Code aufgerufen macht. Wenn der aufgerufene Controller aus irgendeinem Grund fehlschlägt, schlägt das gesamte Programm fehl. Gute Fehlerbehandlung ist ein Muss. Im aufgerufenen Controller können Sie den Fehlercode zurücksetzen, indem Sie return verwenden.
Beispiel:
Berufung Codezeile:
$iExitCode=\Yii::$app->runAction('webserver/update-config', array('oneValue','anotherValue');
Called Controller:
<?php
namespace app\commands;
use yii\console\Controller;
/**
* Webserver related functions
*/
class WebserverController extends Controller {
public function actionUpdateConfig($oneValue, $anotherValue)
{
// Code that does something
if ($success) return 0;
else return 1;
}
}
?>
finden dies vielleicht hilfreich: https://github.com/vova07/yii2-console- runner-extension –