在命令行模式下运行
用于在命令行模式下调用指定的控制器和方法
程序入口
命令行模式下的程序入口与普通程序入口唯一差别在loadApp
后, 调用的是cliRun()
方法
require __DIR__ . '/../../crossboot.php';
Cross\Core\Delegate::loadApp('cli')->cliRun();
使用方法
在命令行模式下执行, 假设入口文件的名称为cli.php
/usr/local/php/bin/php cli.php "控制器:方法" "参数"
数可以是任何可以解析的格式, 解析参数的工作一般在控制器基类的构造函数中, 假设传入的参数格式为-a=1 -b=2
, 处理的方法如下:
namespace app\cli\controllers;
use Cross\MVC\Controller;
/**
* @Auth: wonli <wonli@live.com>
* Class Cli
* @package app\cli\controllers
*/
abstract class Cli extends Controller
{
function __construct()
{
parent::__construct();
//处理$argv传递过来的参数
$params = array();
foreach($this->params as $p) {
if (strpos($p, '=') === false) {
continue;
}
list($p_key, $p_value) = explode('=', $p);
if ($p_key && $p_value) {
$params[trim(trim($p_key, '-'))] = trim($p_value);
}
}
$this->params = $params;
}
}
命令行模式一般用于计划任务, 也可以用来当工具, 处理一些复杂任务