基于yaf的cli脚本程序
在这里我并不想讨论哪种语言更适合写脚本,当你团队里后台开发人员基本都是php程序员的时候,php就成了脚本的最佳选择。 团队开发就得用框架,不用框架的团队开发出的代码让人绝望,所以,世界上最快的php框架yaf成了最好的选择,基于php7.2的yaf框架cli已经稳定运行。
-
- php版本:7.0及以上,推荐版本7.2(5.5,5.6版本理论上也可以,可能需要修改部分bug)
- yaf扩展:2.0以上,推荐3.0以上(2.0只支持到php5.5,5.6)
- php.ini配置:
- 错误等级,推荐E_ALL & ~E_NOTICE
- 加入yaf配置
[yaf] extension=yaf.so yaf.use_namespace=1 yaf.cache_config=1 yaf.environ=dev #(dev,local,product根据部署环境填写)
-
- 版本:5.5及以上,推荐5.7
- php拓展版本:mysqlnd(不是mysql),pdo
-
- 版本:4.0以上,推荐5.0以上,低版本理论理论可行但未尝试
- php拓展版本:推荐3.0以上
-
- 版本:3.4以上,推荐4.0以上,低版本理论理论可行但未尝试
- php拓展版本:推荐1.50以上
- composer 安装mongodb/mongodb 版本:推荐1.3以上,按照源码中的composer.json或者composer.lock
-
- 集成了local,lan,dev,product四个环境,对应php.ini中的yaf.environ配置,具体请参考yaf-cli\conf\dev\application.ini
- cli入口文件为yaf-cli\yaf.php,可以在入口文件做一些全局操作,比如引入composer
-
- library中集成了mysql,redis,mongo,file,log等操作类,为本源码使用的功能插件,自行结合yaf开发,不足之处可以自行修改
- 集成了composer,不需要用到的可以在yaf-cli\yaf.php注释掉,注意mongo插件依赖composer中的mongodb/mongodb
-
- 完全以mvc模式运行,Cli模拟Web访问,进入yaf-cli目录,运行'php yaf.php test/test/index abc 123',对应的模块是test,控制器是TestController,方法是indexAction(),abc和123是参数,通过$this -> getRequest() -> getParams()获取
- 集成承了Cli进程守护'nohup php yaf.php process/daemon > log/daemon.log 2>&1',只有两个路由参数默认为index模块 &',能守护需要持续运行的脚本,配置示例在yaf-cli\conf\common\process\daemon.php
- 集成了Cli定时脚本,时间精度代码中设置的是2秒,'nohup php yaf.php process/interval > log/interval.log 2>&1 &',配置示例在yaf-cli\conf\common\process\interval.php
看代码注释吧