cymapgt / console
为任何PSR-0或PSR-3兼容的包创建控制台界面
Requires
- php: >=7.2.0
- cymapgt/db: ^3.0.0
- cymapgt/logger: ^3.0.0
- cymapgt/usercredential: ^3.0.0
- cymapgt/validator: ^3.0.0
- doctrine/orm: ~2.6.0
- hoa/console: ~3.0
Requires (Dev)
- phpunit/phpunit: 8.*
This package is auto-updated.
Last update: 2024-09-22 22:25:36 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条款