mortenscheel/php-inquirer

该包最新版本(v0.2)没有可用的许可信息。

PHP的漂亮命令行提示

v0.2 2024-07-07 19:31 UTC

This package is auto-updated.

Last update: 2024-09-07 19:47:33 UTC


README

Latest Version on Packagist Total Downloads

PHP Inquirer

基于Rust的inquire crate的PHP交互式CLI提示。

演示

$name = Text::make()->prompt('Name')->placeholder('John Doe')->run();
$password = Password::make()->prompt('Password')->confirm()->run();
$birthday = Date::make()->prompt('Birthday')->maxDate(date('Y-m-d'))->run();
$whitespace = Select::make()->prompt('Indentation')->options(['Tabs', 'Spaces'])->run();
$hobbies = MultiSelect::make()->options(['Programming', 'Music', 'Cooking'])->initial(['Programming'])->run();
$bio = Editor::make()->prompt('Your Bio')->hint('Close editor when finished')->run();
$confirm = Confirm::make()->prompt('Proceed')->default(true)->run();

echo json_encode(compact('name', 'password', 'birthday', 'whitespace', 'hobbies', 'bio', 'confirm'), JSON_PRETTY_PRINT);

关于

这是一个简单的概念验证。我喜欢inquire crate提供的交互式提示,并想知道如何在PHP CLI脚本中使用它们。

此包包含一个简单的Rust命令行应用程序,已为Linux、Mac和Windows预编译。PHP库是一个简单的包装器,使用exec()调用rust应用程序。我想要使用symfony/process,但无法找到一种方式使其完全交互,同时还能捕获输出和退出代码。

关于编辑器提示的注意事项:默认情况下,它使用在EDITORVISUAL中定义的编辑器(如果未定义,则回退到nano)。遗憾的是,此包装器不支持终端编辑器,但使用GUI编辑器如vscode是可行的。要使用VS Code作为编辑器,请执行export VISUAL=code或使用->program('code')运行编辑器。

如果您有建议,请提出问题或提交PR。