PHPackages                             hongye/rc-cmd - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. hongye/rc-cmd

ActiveLibrary[CLI &amp; Console](/categories/cli)

hongye/rc-cmd
=============

A short description of what your package does

v1.0.13(8y ago)241PHPPHP ^7.0

Since Dec 26Pushed 6y ago1 watchersCompare

[ Source](https://github.com/lvyahui8/rc-cmd)[ Packagist](https://packagist.org/packages/hongye/rc-cmd)[ RSS](/packages/hongye-rc-cmd/feed)WikiDiscussions master Synced 2w ago

READMEChangelogDependencies (9)Versions (15)Used By (0)

PHP 命令行脚本框架库
============

[](#php-命令行脚本框架库)

背景
--

[](#背景)

部分业务使用PHP编写运维脚本, 但PHP缺乏一个易用的命令行程序开发库. 此框架的**基于注解的方式支持填空式**的快速开发命令行脚本. **并提供统一的日志|参数解析|控制台格式输出|帮助文档能力.**

使用方法
----

[](#使用方法)

### 引入依赖

[](#引入依赖)

在运维脚本项目中引入依赖.

```
composer require hongye/rc-cmd

```

### 编写运维工具类

[](#编写运维工具类)

创建一个工具类比如SampleTool, 并继承`\Ruochen\Tools\CommandTool`, 分别在类和方法上加上如下注解. 最终通过调用 `SampleTool::getInstance()->process();` 使类文件变为脚本, 并为类文件加上可执行权限.

框架实现了一些易用的注解，基于注解快速定义命令、命令选项、命令参数. 由于PHP本身并不支持注解, 故注解需要添加在文档注释中.

可以为IDE添加注解支持

- Eclipse
- PhpStorm

#### @\\Ruochen\\Annotations\\Command

[](#ruochenannotationscommand)

此注解为工具定义一个命令，属性如下

- name 可选值，如不设值，则命令名称为方法名
- desc 可选值，命令的说明

#### @\\Ruochen\\Annotations\\Operand

[](#ruochenannotationsoperand)

此注解为命令定义一个操作数，属性如下

- name 必须，操作数名称
- mode 模式，枚举值{"required","multiple","optional"}
    - required 表示此命令必须有此操作数
    - multiple 表示此操作数是多个值
    - optional 表示此操作数可选

#### @\\Ruochen\\Annotations\\Option

[](#ruochenannotationsoption)

此注解为命令定义一个选项。此注解可以注解在class或者command method上，如果注解在class上，则在所有command method上都可以访问到

- short 必须，选项缩写
- long 长选项
- mode 模式，枚举值
    - noArg 表示无参数，常用语开关选项
    - requiredArg 选项必须有参数 如：-f /var/mysqld.sock || --file=/var/mysqld.sock
    - optionalArg 选项可选参数
    - multipleArg 选项有多个参数

示例
--

[](#示例)

命令工具文件 sample

```
#!/usr/bin/env php
