Command line 在命令行上运行yii控制器/操作

Command line 在命令行上运行yii控制器/操作,command-line,yii,Command Line,Yii,是否可以像使用CodeIgniter一样在linux命令行上运行yii控制器/操作 CI风格: PHP索引。PHP控制器动作< /P> < P>我不知道从命令行中运行控制器/动作,除了发出一个GET请求外,还有Yi控制台应用程序(相对于Web应用程序),您可以考虑在这里查看一下。我不确定你想要实现什么,所以很难知道它是否对你有用 Yii控制台应用程序与web应用程序来自相同的基类,因此您可以使用与web应用程序相同的资源 在CodeIgniter文件夹的根目录下创建一个“cli.php”文件 c

是否可以像使用CodeIgniter一样在linux命令行上运行yii控制器/操作

CI风格:
PHP索引。PHP控制器动作< /P> < P>我不知道从命令行中运行控制器/动作,除了发出一个GET请求外,还有Yi控制台应用程序(相对于Web应用程序),您可以考虑在这里查看一下。我不确定你想要实现什么,所以很难知道它是否对你有用


Yii控制台应用程序与web应用程序来自相同的基类,因此您可以使用与web应用程序相同的资源

在CodeIgniter文件夹的根目录下创建一个“cli.php”文件

class NotifyUnsharedItemsCommand extends CConsoleCommand
{
    public function run($args)
    {
        $action = Yii::createComponent('application.controllers.actions.NotifyUnsharedItemsAction',$this,'notify');
        $action->run();
    }
 }
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();
    }

    // ...

}