grizz-it / cli
PHP应用程序的CLI元素。
Requires
- php: ^8.0
- grizz-it/enum: ^1.1
- grizz-it/task: ^1.1
- grizz-it/validator: ^1.1
Requires (Dev)
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-08-28 22:17:08 UTC
README
GrizzIT CLI
此包包含用于在CLI环境中读取和写入的元素。它提供了在CLI环境中轻松渲染元素的元素。它支持创建CLI表单,甚至可以对所有这些进行主题化。
安装
要安装此包,请运行以下命令
composer require grizz-it/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
用于记录用户输入,为应用程序提供信息。可用的读取器如下
错误读取器
错误读取器用于在读取被禁用时始终抛出错误。例如,当应用程序使用无交互标志时。此读取器可用于禁用交互。
读取器
读取器(标准读取器)是一种使用CLI中的stdin读取用户输入的读取器。
SttyAutocompletingReader
此读取器使用(并期望)控制台中的stty
来在stdin之上提供一层自动完成体验。它期望一个OptionProvider来解决自动完成选项。这里提供了一个标准的实现(点击此处)。
SttyObscuredReader
此读取器使用stty
来消除用户提供给应用程序的输入的可见性。当用户需要提供密码时,这可能很有用。
写入器
写入器用于在CLI中直接向用户输出信息。当调用方法时,所有输出将立即刷新到用户。
Styler
Styler用于在写入输出时输出样式。可以通过向Styler提供一个或多个枚举值来应用样式。选项在StyleEnum中定义。有关如何使用枚举的更多信息,请参阅grizz-it/enum
包。
指针
指针类可用于在终端中操作指针。这在覆盖文本和渲染元素时很有用。
终端
终端类用于确定用户的终端的高度和宽度。当元素需要在终端的范围内渲染时,这可能很有用。该包提供了两个选项。使用stty
确定终端大小的SttyTerminal。使用tput
确定终端大小的TputTerminal。
主题
主题用于区分应用程序中使用的元素的样式。可以使用StyleEnum检索样式。有关如何使用枚举的更多信息,请参阅grizz-it/enum
包。
这些枚举样式可以绑定到ConfigurableStyle以组合并渲染它们。
然后可以使用这些可配置样式在一个Theme中来统一应用程序中的样式。主题还接受设置变量,因此可以配置元素如边距、填充和字符。
该包提供了一个ApplicationTheme,显示包中所有提供的元素的默认值。此主题可在此处找到。
工厂
为所有这些元素,都提供了工厂。
生成器
为简化主题和表单的创建,创建了两个生成器。
这两个类提供了支持链式调用的方法,可以快速生成表单和/或主题。
示例
示例可以在examples目录中找到。
变更日志
有关最近变更的详细信息,请参阅CHANGELOG。
贡献
请参阅CONTRIBUTING和CODE_OF_CONDUCT以获取详细信息。
MIT许可证
版权所有 (c) GrizzIT
在此特此授予任何获得此软件及其相关文档副本(以下简称“软件”)的人免费使用该软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供方提供软件的人行使这些权利,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他方式,源于、因涉及或与软件或软件的使用或其他方式相关。