qingbing/php-console

php-cli 模式,命令行模式的执行封装

1.0.1 2019-02-22 18:06 UTC

README

描述

提供 php 命令操作的简易封装,支持单命令和多命令两种方式

注意事项

  • 入口文件参考 bin/bootstrap.php 文件即可
  • 该组建创建在"qingbing/php-application"之上
  • 务必通过定义"COMMAND_PATH"来指定命令的保存目录,该目录必须定义命名空间为"Command"
  • 当为在入口文件中定义命令目录时,小框架默认为:define("COMMAND_PATH", realpath(".") . "/command")
  • 命令传递参数目前不支持数组格式
  • 命令名(类名)必须以 "Command" 结尾
  • 命令必须继承"\Console\BaseCommand"
  • 命令编写分成两种模式
    • 单命令 : 将业务代码直接重写基类的run方法即可
    • 多命令 : 命令中每一个以"action"开始的公共方法会被当成一个命令操作

使用方法

1.入口文件

require("../vendor/autoload.php");
// 执行应用命令
\Console\Application::getInstance()->run();

2. 单命令(一个文件中只有一个命令,业务代码在"run"中实现)

class RunCommand extends BaseCommand
{
    public function run()
    {
        var_dump(__CLASS__);
        var_dump(__METHOD__);
    }
}

3. 多命令(一个文件中可以有多个命令,每一个"action"开始的公共方法都是一个命令)

class TestCommand extends BaseCommand
{
    public function actionDefault()
    {
        var_dump(__CLASS__);
        var_dump(__METHOD__);
    }
}

4. cli 命令

# 查询所有的命令
 php bootstrap.php
 
# 查询某个命令的所有操作
php bootstrap.php --command=Command/HelpCommand
或
php bootstrap.php --command=Command/HelpCommand  --action=help

# 传递GET参数
php bootstrap.php --command=Command/HelpCommand  --action=list --params="id=5&name=qingbing"

# 传递POST参数
php bootstrap.php --command=Command/HelpCommand  --action=list --id=5 --name=qingbing

====== 异常代码集合 ======

异常代码格式:1007 - XXX - XX (组件编号 - 文件编号 - 代码内异常)

 - 100700101 : 命令"{command}"无效
 - 100700102 : 命令"{command}"必须以Command结尾
 - 100700103 : 命令"{command}"必须继承"\Console\BaseCommand"
 
 - 100700201 : 命令"{command}.{action}"不存在