yii命令行下运行控制器

因为默认情况下yii是从URL中取得路由信息的,在命令行下,就不能正常运行MVC结构,我作一个补充,使其可在命令行下运行MVC。

这样,我们的程序不作任何修改即可在命令行和WEB下运行,参照代码的注释部分安装即可使用。

<?php
/**
 * Yii CLI Controller/Action parse support
 * @author zhangxugg@163.com 2013-9-16
 * 
 * @package protected/components/cliUrlManager.php
 * @todo config/main.php  =>
 * 'components'=> array(
 *      'urlManager' => array(
            'class' => 'cliUrlManager',
        ),
 * ),
 * 
 * thus, in CLI enviroment: php index.php
 */ 

class cliUrlManager extends CUrlManager {
    
    public function parseUrl($request) {
        if(isset($_SERVER['HTTP_HOST'])) {
            return parent::parseUrl($request);
        }
        
        if(!isset($_SERVER['argv'][1])) {
            echo "YII CLI Interface Usage:\n";
            echo $_SERVER['argv'][0]." controllerId/ActionId param1=val1 param2=val2 ...\n\n";
            echo "above params parsed to:\n\$_GET=array(\n\tparam1=>val1,\n\tparam2=>val2\n);";
            exit;
        }
        
        $route = $_SERVER['argv'][1] ;
        $parts = array();
        foreach(array_slice($_SERVER['argv'],2) as $ps) {
            if(preg_match("/(\w+?)=(.+)/",$ps,$parts)) {
                $_GET[$parts[1]] = $parts[2];
            }
        }
        
        return $route ;            
    }
}

转载于:https://my.oschina.net/zxu/blog/161759

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值