4

CodeIgniter の使用法と同じように、Linux コマンド ラインで yii コントローラ/アクションを実行することは可能ですか?

CI スタイル: php index.php コントローラー アクション

4

3 に答える 3

3
class NotifyUnsharedItemsCommand extends CConsoleCommand
{
    public function run($args)
    {
        $action = Yii::createComponent('application.controllers.actions.NotifyUnsharedItemsAction',$this,'notify');
        $action->run();
    }
 }
于 2013-07-23T02:58:56.697 に答える
1

GET リクエストを行う以外に、コマンド ラインからコントローラー/アクションを実行する方法については知りませんが、(Web アプリケーションとは対照的に) yii コンソール アプリケーションがあり、こちらを参照してくださいhttp://www.yiiframework .com/doc/guide/1.1/en/topics.console。あなたが何を達成しようとしているのかわからないので、それがあなたにとってうまくいくかどうかを知るのは難しい.

Yii コンソール アプリケーションは、Web アプリケーションと同じ基本クラスから派生しているため、Web アプリケーションと同じリソースを使用できます。

于 2013-04-30T19:08:42.640 に答える
0

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 の最初の行として追加できます。

!/usr/bin/php

特定のコントローラーをコマンド ラインのみにしたい場合は、コントローラー コンストラクターで Web 呼び出しをブロックできます。

class Hello extends Controller {

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

    // ...

}
于 2013-07-23T07:00:24.553 に答える