Wie kann ich einen Konsolenbefehl in der Webanwendungsaktion in Yii aufrufen?

7

Ich habe einen Konsolenbefehl, um eine Verbraucherzeit zu machen, UND ich muss wissen, wie ich ihn in einer Webanwendungsaktion in YII aufrufen (ausführen) kann.

%Vor%

Ich möchte diesen Code ausführen.

    
JahangirAhmad 14.04.2012, 07:30
quelle

7 Antworten

31

versuche das:

%Vor%     
slaver113 02.07.2013, 10:48
quelle
4

Versuchen Sie es

%Vor%

wobei array ('start', '--daemonize', '--initd') eine Aktions- und Aktionsparameter

ist     
Filsh 13.12.2013 15:13
quelle
2

Ich hatte das gleiche Problem - ich muss die Aktion vom Controller und vom Befehl

aufrufen

Ich sagte das gleiche Problem, weil es tatsächlich gleich - Sie haben eine Aktion, die Sie von der Konsole aus anrufen müssen, und rufen Sie es auch vom Controller.

If you need to call an action(command) as a part of controller action, then i think you need to modify this solution a little . Oder ist meine Lösung genug für dich?

Also hier ist meine Lösung:

Erstellen Sie zuerst eine Aktion wie in Ссылка

angegeben %Vor%

Dann wird in der Controller-Aktion wie gewohnt geladen:

%Vor%

und im Befehl führe ich die Aktion so aus:

%Vor%     
llamerr 28.04.2012 15:02
quelle
2

Wenn wir akzeptieren, dass wir uns auf dem Linux-Server befinden, wäre das Beispiel für das reale Leben von Yii 1.1:

%Vor%

Dadurch wird der Yii-Konsolenbefehl im Hintergrund ausgeführt.

    
Stepan Zarubin 07.11.2015 11:30
quelle
1

Auch eine andere sehr saubere Lösung von cebe auf gist :

%Vor%     
George Gkirtsou 18.06.2014 08:19
quelle
0

Yii ist PHP - & gt; Sie können die Standard-PHP-Konstrukte, die unter Ссылка angegeben sind, und die entsprechenden Methoden unten auf der Seite verwenden auf was genau du erreichen willst.

    
KillerX 14.04.2012 07:42
quelle
0

Normalerweise sollten Sie in diesen Situationen einen Refactor durchführen. Verschieben Sie den "allgemeinen" Code aus dem MyCommand und legen Sie ihn in eine Klasse im Ordner components . Jetzt können Sie einen beliebigen Kopf über den "normalen" Code setzen, ohne Ihre Funktionalität zu verändern. Zum Beispiel:

protected / Komponenten / Mywork.php:

%Vor%

protected / controller / MyworkController.php:

%Vor%

protected / commands / MyworkCommand.php:

%Vor%

Dieser Ansatz vereinfacht das Testen, da Sie Mywork als eine Einheit außerhalb der von Ihnen verwendeten Ansicht testen können.

    
David Newcomb 25.11.2014 20:35
quelle

Tags und Links