基于yaf的cli脚本程序

首先你得修改yaf的cli的入口文件,\Cli.php为命令行入口文件

<?php
define('APPLICATION_PATH', dirname(__FILE__));
//$application = new Yaf_Application( APPLICATION_PATH . "/conf/application.ini");
////$application->getDispatcher()->dispatch(new Yaf_Request_Simple());
//$application->bootstrap()->execute('callback', $avg1, $avg2);

/*
 * cli命令行
 * 此文件是不被允许访问的文件,**为第一重保险**
 */
//只允许cli模式运行,**为第二重保险**
if(php_sapi_name()!='cli'){
    echo 'No authority';exit();
}
//指向项目目录
define('APP_PATH',realpath(__DIR__.'/'));
//print_r(APP_PATH.'/conf/'.ini_get('yaf.environ').'/application.ini');exit;
//加载框架的配置文件
//$app = new Yaf_Application(APP_PATH.'/conf/application.ini');     //载入cli的配置
$app = new Yaf_Application( APPLICATION_PATH . "/conf/application.ini");
 
//引入composer
require  APP_PATH.'/vendor/autoload.php';
 
//加载cli的bootstrap配置内容
$app -> bootstrap();
 
//检查argv参数,**为第三重保险**
$uri_r = explode('/',$argv[1]);
$count = count($uri_r);
if($uri_r[2]){
}elseif($uri_r[1]){
    array_unshift($uri_r,'index');
}else{
    echo 'uri error!';exit();
}
list($module,$controller,$action) = $uri_r;
$params = array_slice($argv,2);
 
//改造请求
$Request = new Yaf_Request_Simple('CLI',$module,$controller,$action,$params);
 
//启动
$app -> getDispatcher() -> dispatch($Request);

?>

 调用为

 php72 /home/www/wwwroot/openapi.qi360.cn/Cli.php Dbem/test 9 1

 #9,1是参数
    public function testAction(){
        $params = $this -> getRequest() -> getParams();
        var_dump($params); //获取为数组 0为第一个参数
    }

 

posted @ 2019-07-04 08:21  A18  阅读(300)  评论(0)    收藏  举报