CodeIgniter の使用法と同じように、Linux コマンド ラインで yii コントローラ/アクションを実行することは可能ですか?
CI スタイル: php index.php コントローラー アクション
CodeIgniter の使用法と同じように、Linux コマンド ラインで yii コントローラ/アクションを実行することは可能ですか?
CI スタイル: php index.php コントローラー アクション
class NotifyUnsharedItemsCommand extends CConsoleCommand
{
public function run($args)
{
$action = Yii::createComponent('application.controllers.actions.NotifyUnsharedItemsAction',$this,'notify');
$action->run();
}
}
GET リクエストを行う以外に、コマンド ラインからコントローラー/アクションを実行する方法については知りませんが、(Web アプリケーションとは対照的に) yii コンソール アプリケーションがあり、こちらを参照してくださいhttp://www.yiiframework .com/doc/guide/1.1/en/topics.console。あなたが何を達成しようとしているのかわからないので、それがあなたにとってうまくいくかどうかを知るのは難しい.
Yii コンソール アプリケーションは、Web アプリケーションと同じ基本クラスから派生しているため、Web アプリケーションと同じリソースを使用できます。
CodeIgniter フォルダーのルートに「cli.php」ファイルを作成します。
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 の最初の行として追加できます。
特定のコントローラーをコマンド ラインのみにしたい場合は、コントローラー コンストラクターで Web 呼び出しをブロックできます。
class Hello extends Controller {
function __construct() {
if (isset($_SERVER['REMOTE_ADDR'])) {
die('Command Line Only!');
}
parent::Controller();
}
// ...
}