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 &