欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基于yaf的cli脚本

程序员文章站 2024-02-15 17:46:34
...

在这里我并不想讨论哪种语言更适合写脚本,当你团队里后台开发人员基本都是php程序员的时候,php就成了脚本的最佳选择

团队开发就得用框架,不用框架的团队开发出的代码让人绝望,所以,世界上最快的php框架yaf成了最好的选择,我们基于php7.2的yaf框架cli已经上线稳定运行

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

<?php
/*
 * cli命令行
 * 此文件是不被允许访问的文件,**为第一重保险**
 */
//只允许cli模式运行,**为第二重保险**
if(php_sapi_name()!='cli'){
    echo 'No authority';exit();
}
//指向项目目录
define('APP_PATH',realpath(__DIR__.'/'));
//加载框架的配置文件
$app = new Yaf\Application(APP_PATH.'/conf/'.ini_get('yaf.environ').'/application.ini');     //载入cli的配置

//引入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);

    文件\application\modules\Test\controllers\Test.php为示例文件

<?php
/*
 * 测试脚本
 */
class TestController extends CommonController {

    
    public function testAction(){
        $params = $this -> getRequest() -> getParams();
        var_dump($params);
    }

}

    脚本运行的方法

# 进入yaf主目录
php yaf.php test/test/test aaa bbb    #aaa,bbb是参数

下面是yaf的官方文档,除了是中文写的,其详细程度和更新程度一言难尽

http://www.laruence.com/manual/

相关标签: yaf cli