Возможно ли запустить контроллер yii/действие в командной строке linux, как и использование CodeIgniter?Запустить контроллер yii/действие в командной строке
стильCI: PHP index.php действия контроллера
Возможно ли запустить контроллер yii/действие в командной строке linux, как и использование CodeIgniter?Запустить контроллер yii/действие в командной строке
стильCI: PHP index.php действия контроллера
Я не в курсе работает контроллер/действие из командной строки помимо создания запроса GET, однако есть Yii консольные приложения (в отличие от сети приложения), которые вы можете рассмотреть, посмотрите здесь http://www.yiiframework.com/doc/guide/1.1/en/topics.console. Я не уверен, чего вы пытаетесь достичь, поэтому трудно понять, будет ли это работать для вас.
Консольные приложения Yii получены из тех же базовых классов, что и ваше веб-приложение, поэтому вы можете использовать те же ресурсы, что и ваш webapp.
class NotifyUnsharedItemsCommand extends CConsoleCommand
{
public function run($args)
{
$action = Yii::createComponent('application.controllers.actions.NotifyUnsharedItemsAction',$this,'notify');
$action->run();
}
}
Создать файл «cli.php» в корне папки 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';
Если вы находитесь на среде Linux и хотите, чтобы сделать этот сценарий самораспаковывающимся, вы можете добавить это как первая строка в cli.php:
Если вы хотите конкретный контроллер будет только из командной строки, вы можете блокировать веб-звонки в конструкторе контроллера:
class Hello extends Controller {
function __construct() {
if (isset($_SERVER['REMOTE_ADDR'])) {
die('Command Line Only!');
}
parent::Controller();
}
// ...
}