/ / Uruchom kontroler / akcji yii w wierszu poleceń - wiersz poleceń, yii

Uruchom kontroler / akcję yii w wierszu poleceń - wiersz poleceń, yii

Czy możliwe jest uruchomienie kontrolera / akcji yii w wierszu poleceń systemu Linux, tak jak w przypadku CodeIgniter?

Styl CI: Działanie kontrolera php index.php

Odpowiedzi:

1 dla odpowiedzi № 1

Nie jestem świadomy uruchamiania kontrolera / akcjiw wierszu poleceń oprócz wysyłania żądania GET, jednak istnieją aplikacje konsoli Yii (w przeciwieństwie do aplikacji internetowych), które można rozważyć tutaj http://www.yiiframework.com/doc/guide/1.1/en/topics.console. Nie jestem pewien, co próbujesz osiągnąć, więc ciężko jest wiedzieć, czy to zadziała.

Aplikacje konsolowe Yii pochodzą z tych samych klas podstawowych, co aplikacja internetowa, dzięki czemu można korzystać z tych samych zasobów, co aplikacja internetowa.


2 dla odpowiedzi nr 2
class NotifyUnsharedItemsCommand extends CConsoleCommand
{
public function run($args)
{
$action = Yii::createComponent("application.controllers.actions.NotifyUnsharedItemsAction",$this,"notify");
$action->run();
}
}

0 dla odpowiedzi № 3

Utwórz plik „cli.php” w katalogu głównym folderu CodeIgniter

if (isset($_SERVER["REMOTE_ADDR"])) {
die("Command Line Only!");
}

set_time_limit(0);

$_SERVER["PATH_INFO"] = $_SERVER["REQUEST_URI"] = $argv[1];

require dirname(__FILE__) . "/index.php";

Jeśli pracujesz w środowisku Linux i chcesz, aby skrypt był wykonywalny, możesz dodać go jako pierwszy wiersz w pliku cli.php:

Jeśli chcesz, aby konkretny kontroler był tylko wierszem poleceń, możesz blokować połączenia internetowe w konstruktorze kontrolera:

class Hello extends Controller {

function __construct() {
if (isset($_SERVER["REMOTE_ADDR"])) {
die("Command Line Only!");
}
parent::Controller();
}

// ...

}