PHP应用程序的CLI元素。

1.0.0 2021-03-28 14:49 UTC

This package is auto-updated.

Last update: 2024-08-28 22:17:08 UTC


README

Build Status

GrizzIT CLI

此包包含用于在CLI环境中读取和写入的元素。它提供了在CLI环境中轻松渲染元素的元素。它支持创建CLI表单,甚至可以对所有这些进行主题化。

安装

要安装此包,请运行以下命令

composer require grizz-it/cli

用法

元素

实现ElementInterface的元素,是一组标准的元素,它以特定的样式渲染到用户。这些元素可以通过主题化(将在后面讨论)完全自定义。

可用的元素包括

BlockElement

这是一个用于在更大舞台上展示内容的块。它具有可配置的边距、填充和颜色。

ChainElement

链元素本身不是一个实际元素,而是一个将更多元素链接到一个元素中的元素,因此它可以提供给只接受一个元素的函数。

ExplainedListElement

解释列表元素是一个显示带有描述的嵌套列表条目的元素。该元素可以通过颜色进行自定义。可以通过提供描述后跟一组键来添加项目,以确定列表中的位置。

FormElement

表单元素是用于渲染表单的包装元素。渲染一次后,可以使用getInput方法检索值。表单元素本身不能自定义,但提供的描述可以样式化。

ListElement

列表元素是一个简单的多行渲染器。它简单地在给定的样式中将所有项目渲染在新行。

ProgressElement

进度元素用于显示进度条。这利用了来自grizz-it/taskTaskList进行渲染。

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

贡献

请参阅CONTRIBUTINGCODE_OF_CONDUCT以获取详细信息。

MIT许可证

版权所有 (c) GrizzIT

在此特此授予任何获得此软件及其相关文档副本(以下简称“软件”)的人免费使用该软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供方提供软件的人行使这些权利,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他方式,源于、因涉及或与软件或软件的使用或其他方式相关。