基于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的官方文档,除了是中文写的,其详细程度和更新程度一言难尽
上一篇: PHP正则表达式:匹配特定数字
推荐阅读
-
基于yaf的cli脚本
-
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法,_PHP教程
-
CZD_Yaf_Extension基于yaf框架扩展的php开源项目
-
基于命令行执行带参数的php脚本并取得参数的方法,php脚本
-
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法_PHP教程
-
基于python脚本实现软件的注册功能(机器码+注册码机制)
-
基于jquery的兼容各种浏览器的iframe自适应高度的脚本_jquery
-
基于Redis Lua脚本实现的分布式锁
-
基于Innobackupex的MySQL备份脚本
-
基于命令行执行带参数的php脚本并取得参数的方法_PHP