ulrack / cli
Requires
- php: ^7.2
- grizz-it/enum: ^1.0
- grizz-it/task: ^1.0
- grizz-it/validator: ^1.0
Requires (Dev)
- phpunit/phpunit: ^8.0
- squizlabs/php_codesniffer: ^3.4
This package is auto-updated.
Last update: 2021-03-28 14:53:12 UTC
README
Ulrack CLI
此软件包包含用于CLI环境的读写元素。它提供了在CLI环境中轻松渲染元素的元素。它支持创建CLI表单,甚至可以为所有这些元素设置主题。
安装
要安装此软件包,请运行以下命令
composer require ulrack/cli
用法
元素
实现ElementInterface的元素是一组标准元素,它们以特定样式渲染给用户。这些元素可以通过主题(稍后介绍)进行完全自定义。
可用的元素有
BlockElement
这是一个用于在更大舞台上展示内容的块。它具有可配置的边距、填充和颜色。
ChainElement
链元素本身不是一个实际的元素,但它是一个将更多元素链接到一起的元素,因此可以将其提供给只接受一个元素的函数。
ExplainedListElement
解释列表元素是一个显示带有描述的嵌套列表条目的元素。该元素可以通过颜色进行自定义。可以通过提供描述后跟一组键来添加项目,以确定列表中的位置。
FormElement
表单元素是用于渲染表单的包装元素。渲染一次后,可以使用getInput
方法检索值。表单元素本身不能自定义,但提供的描述可以进行样式设置。
ListElement
列表元素是一个简单的多行渲染器。它简单地以给定样式在新行上渲染所有条目。
ProgressElement
进度元素用于显示进度条。它使用来自 grizz-it/task
的 TaskList
进行渲染。
TableElement
表格元素是一个完全可定制的表格(包括边框)。它只渲染提供的项目数组中定义的键。
TextualElement
文本元素是一个简单的文本元素,可以使用样式进行自定义。它可以选择是否渲染元素的换行。
表单元素
表单元素是用于渲染表单并从用户那里获取输入的元素。
本包提供了两种类型的表单元素,分别是 Field。字段提供了一个简单的单值表单。
另一种字段类型是 ArrayField。该字段用于接收用户的多个选项。
这两个字段都可以通过它们提供的 Reader 进行自定义行为。
当字段被提供给表单时,需要与 FieldValidator 一起使用。这些验证器是来自 grizz-it/validator
包的 Validator
和用于渲染错误的元素的组合。
输入输出(IO)
IO 命名空间用于直接从用户那里获取输入和输出。
读取器
在 IO 命名空间内,Readers
用于记录用户输入,为应用程序提供信息。可用的读取器如下:
ErrorReader
错误读取器在读取被禁用时总是抛出错误。例如,当应用程序使用无交互标志时。此读取器可以用于禁用交互。
Reader
Reader(标准读取器)是一个使用 CLI 的 stdin 来读取用户输入的读取器。
SttyAutocompletingReader
此读取器使用(并期望)控制台中的 stty
来在 stdin 上提供一个自动完成层的体验。它期望一个 OptionProvider 来解决自动完成选项。这里提供了一个标准实现 此处。
SttyObscuredReader
此读取器使用 stty
来隐藏用户提供给应用程序的输入。当用户需要提供密码时,这可能很有帮助。
Writer
写入器用于直接向用户在 CLI 中输出信息。当调用方法时,所有输出将立即刷新到用户。
Styler
Styler 用于在输出时应用样式。可以通过向 Styler 提供一个或多个枚举值来应用样式。选项在 StyleEnum 中定义。有关枚举的使用方法,请参阅 ulrack/enum
包以获取更多详细信息。
Pointer
Pointer 类可以用于操纵终端中的指针。当需要覆盖文本和渲染元素时,这可能很有用。
终端
终端类用于确定用户终端的高度和宽度。当元素需要在终端范围内渲染时,这可能很有用。该软件包提供了两个选项。使用 SttyTerminal 的 stty
来确定终端的大小。使用 tput
的 TputTerminal 来确定终端的大小。
主题
主题用于区分应用程序中使用的元素的外观。可以使用 StyleEnum 获取样式。有关枚举的使用方法,请参阅 grizz-it/enum
包以获取更多详细信息。
这些枚举样式可以绑定到 ConfigurableStyle 来组合并渲染它们。
这些可配置的样式然后可以用于 Theme 以在整个应用程序中统一样式。主题还可以接受设置变量,因此可以配置元素的边距、填充和字符等。
该软件包提供了一个 ApplicationTheme,显示了该软件包中所有提供的元素的默认值。此主题可在 此处 找到。
工厂
为这些元素提供了工厂。
生成器
为了简化主题和表单的创建,创建了两个生成器。
这两个类提供支持链式调用的方法,以便快速生成表单和/或主题。
示例
示例可以在 示例 目录中找到。
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
请参阅 CONTRIBUTING 和 CODE_OF_CONDUCT 以获取详细信息。
MIT 许可证
版权所有 (c) GrizzIT
特此授予任何获得本软件及其相关文档文件(“软件”)副本的任何人,免费使用该软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,以及允许向软件提供方提供软件的人这样做,前提是遵守以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的质量保证,无论是明示的还是隐含的,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论此类责任是基于合同、侵权或其他原因,以及与软件或软件的使用或其他操作相关。