2013-04-30 5 views

ответ

1

Я не в курсе работает контроллер/действие из командной строки помимо создания запроса GET, однако есть Yii консольные приложения (в отличие от сети приложения), которые вы можете рассмотреть, посмотрите здесь http://www.yiiframework.com/doc/guide/1.1/en/topics.console. Я не уверен, чего вы пытаетесь достичь, поэтому трудно понять, будет ли это работать для вас.

Консольные приложения Yii получены из тех же базовых классов, что и ваше веб-приложение, поэтому вы можете использовать те же ресурсы, что и ваш webapp.

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

Создать файл «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:

/USR/бен/PHP

Если вы хотите конкретный контроллер будет только из командной строки, вы можете блокировать веб-звонки в конструкторе контроллера:

class Hello extends Controller { 

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

    // ... 

} 
Смежные вопросы