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 № 1Nie 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();
}
// ...
}