web和cli运行模式
web运行模式
就是我们一般的基于web服务器的访问脚本的模式
cli命令行运行模式
一般我们会做命令行的操作,如:定时任务脚本,我们不需要单独写一个php脚本来做,这样不便于管理, 我们可以和开发web模式一样来写命令行脚本,框架会自动判断是web还是cli模式,可以复用已有的modle和业务逻辑,不需要自己写连接MySQL、连接Redis等, 还可以方便的使用框架模型里面的方法来操作数据库.
推荐的目录结构
/app
|--cli
| |--business
| |--controller
| | |--Cli.php
| | |--Document.php
| |--model
|--web
/cli
|--job
|--index.php //cli模式单一入口文件
/common
|--common
| |--model
| |--provider
怎样调用
php cli/index.php 控制器/动作 参数1=参数值 参数2=参数值 ......
例子:
php cli/index.php document/findOneWords document_id=10009 type=2
这样就会调用cli这个应用(app/cli)下面的控制器Document里面的findOneWords方法
获取参数
方法一:
<?php
namespace app\cli\controller;
class Document extends Cli
{
public function findOneWords()
{
$document_id = (int) self::$params['document_id'];
//...
//业务逻辑、操作...
}
}
方法二:
public function findOneWords($document_id = 0, $type = 0)
{
$document_id = (int) $document_id;
if ($document_id <= 0) {
throw new Exception('param error: document_id param should be greater than 0');
}
...
业务逻辑、操作...
}
后台运行
nohu php /data/timophp/app/cli/index.php document/findOneWords document_id=10009 &