cymapgt/console

为任何PSR-0或PSR-3兼容的包创建控制台界面

3.0.0 2019-09-25 01:25 UTC

README

这是一个用于通过控制台界面公开PHP服务的包,如果需要,则提供内置的认证

描述

控制台包允许其他包实现一个接口,该接口使它们能够以最少的代码重复提供它们的类命令行功能。一个了解NetConsoleInterface的类可以注册到控制台API;它提供了其他功能,包括自动帮助生成以及在访问已注册命名空间之前的认证接口。

安装

通过Composer安装应用程序

require "cymapgt/console" : "^1.0.0"

使用

概述

  • 认证控制台用户(命名为console)到服务

  • 提供向API添加服务的接口

  • 提供从API中删除服务的接口

  • 提供通过API修改服务的接口

  • 提供显示API使用说明的接口

  • 提供将实际API调用委派给已注册服务的接口

使用控制台包

编写NetConsole感知类

该包包含两个示例类,实现了NetConsoleInterface。请参阅src/DemoApi.php和src/DemoRpi.php文件,了解您可以用来实现NetConsole类的模板。复制文件并根据需要自定义。

NetConsole认证

默认的NetConsole认证包含一些假设

1.您的认证数据存储是一个数据库,其中包含名为user的表和用户名和密码字段

2.您在数据存储中有名为console的活跃用户

如果遵守上述要求,控制台认证将直接工作(假设NetworkBootstrap已正确配置)。

如果您想实现自己的认证,请替换src/helper/ConsoleCredentials.php文件,并在其中

1.创建一个名为ConsoleCredentials的类

2.创建一个名为authenticate的公共静态方法,该方法将实现您的自定义认证逻辑

核心NetConsole命令

NetConsole的核心实现了NetConsoleInterface。有一些保留关键字

1.添加命令:

add serviceName serviceNamespace

命令和开关

命令

serviceName - 在控制台中注册的服务名称,或一个粘性服务。

serviceNamespace - 被注册到netconsole API的服务的完全限定命名空间

开关

示例

add bootstrap cymapgt\core\utility\bootstrap\console\BootstrapConsole;

2.帮助命令:

help serviceName [-v="..."] [-m="..."]

命令和开关

命令

serviceName - 在控制台中注册的服务名称,或一个粘性服务。

开关

-v - 帮助文档的详细程度

-m - 在此处指定方法名称将过滤帮助,仅提供特定方法的文档

示例

help bootstrap -m=config-all -v=3

help add

3.删除命令:

remove serviceName

命令和开关

命令

serviceName - 在控制台中注册的服务名称,或一个粘性服务。

开关

示例

remove bootstrap

4.退出命令:

quit

命令和开关

命令

开关

示例

quit

5.自定义命令:

通过实现NetConsoleInterface,您的PHP服务功能被公开

在此实现之后,您需要通过使用添加命令将您的包与NetConsole注册。

成功添加包将公开您在控制台配置中定义的所有命令和开关。因此,如果分发专有逻辑,则可以使用该包来管理任务,例如在受控环境中安装应用程序。

它也可以快速将PHP服务转换为控制台应用程序。

测试

该包提供了PHPUnit测试

贡献

  • 请通过Email联系rhossis或通过Skype进行联系
  • 您将被添加为贡献者作者

许可证

BSD 3条款