ulrack/cli

此软件包已被废弃且不再维护。作者建议使用grizz-it/cli软件包。

PHP应用的CLI元素。

1.1.2 2020-11-09 14:45 UTC

This package is auto-updated.

Last update: 2021-03-28 14:53:12 UTC


README

Build Status

Ulrack CLI

此软件包包含用于CLI环境的读写元素。它提供了在CLI环境中轻松渲染元素的元素。它支持创建CLI表单,甚至可以为所有这些元素设置主题。

安装

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

composer require ulrack/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 用于记录用户输入,为应用程序提供信息。可用的读取器如下:

ErrorReader

错误读取器在读取被禁用时总是抛出错误。例如,当应用程序使用无交互标志时。此读取器可以用于禁用交互。

Reader

Reader(标准读取器)是一个使用 CLI 的 stdin 来读取用户输入的读取器。

SttyAutocompletingReader

此读取器使用(并期望)控制台中的 stty 来在 stdin 上提供一个自动完成层的体验。它期望一个 OptionProvider 来解决自动完成选项。这里提供了一个标准实现 此处

SttyObscuredReader

此读取器使用 stty 来隐藏用户提供给应用程序的输入。当用户需要提供密码时,这可能很有帮助。

Writer

写入器用于直接向用户在 CLI 中输出信息。当调用方法时,所有输出将立即刷新到用户。

Styler

Styler 用于在输出时应用样式。可以通过向 Styler 提供一个或多个枚举值来应用样式。选项在 StyleEnum 中定义。有关枚举的使用方法,请参阅 ulrack/enum 包以获取更多详细信息。

Pointer

Pointer 类可以用于操纵终端中的指针。当需要覆盖文本和渲染元素时,这可能很有用。

终端

终端类用于确定用户终端的高度和宽度。当元素需要在终端范围内渲染时,这可能很有用。该软件包提供了两个选项。使用 SttyTerminalstty 来确定终端的大小。使用 tputTputTerminal 来确定终端的大小。

主题

主题用于区分应用程序中使用的元素的外观。可以使用 StyleEnum 获取样式。有关枚举的使用方法,请参阅 grizz-it/enum 包以获取更多详细信息。

这些枚举样式可以绑定到 ConfigurableStyle 来组合并渲染它们。

这些可配置的样式然后可以用于 Theme 以在整个应用程序中统一样式。主题还可以接受设置变量,因此可以配置元素的边距、填充和字符等。

该软件包提供了一个 ApplicationTheme,显示了该软件包中所有提供的元素的默认值。此主题可在 此处 找到。

工厂

为这些元素提供了工厂。

生成器

为了简化主题和表单的创建,创建了两个生成器。

这两个类提供支持链式调用的方法,以便快速生成表单和/或主题。

示例

示例可以在 示例 目录中找到。

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

贡献

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

MIT 许可证

版权所有 (c) GrizzIT

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

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

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