net_bazzline/php_component_cli_readline

此包已被废弃且不再维护。未建议替代包。

自由软件中的PHP组件,简化在PHP 5.3及以上版本中使用PHP readline实现的过程

1.2.2 2017-05-05 20:32 UTC

This package is auto-updated.

Last update: 2021-03-05 12:35:21 UTC


README

我仍然喜欢这个想法,但目前没有进一步开发的用例。

PHP的Readline组件

本项目旨在提供一个易于使用且自由软件的PHP组件,用于处理Unix控制台readline和自动完成PHP脚本。

当前主分支的构建状态由Travis CI跟踪: Build Status Latest stable

Scrutinizer状态如下: code quality | build status

Versioneye状态如下: Dependency Status

请查看 openhub.net

当前变更日志可以在此处找到。

优点

  • 自动完成支持
  • readline支持
  • 数组配置
    • 设置可能自动完成的选项数组
    • 将操作绑定到特定的自动完成选项
    • 支持函数、闭包和对象作为自动完成的目标
  • 简化PHP的readline实现,如此处所示
  • 适用于PHP 5.3及以上版本

使用方法

use Net\Bazzline\Component\Cli\Readline\ManagerFactory;

require_once __DIR__ . '/../vendor/autoload.php';

$factory    = new ManagerFactory();
$manager    = $factory->create();
$myClass    = new MyClass();    //assuming a class "MyClass" exists

$manager->setConfiguration(
    array(
        'git' => array(
            'add' => function ($files) {
                if (!is_null($files)) {
                    passthru('/usr/bin/env git add ' . implode(' ', $files));
                }
            },
            'commit' => function ($message) {
                if (is_null($message)) {
                    passthru('/usr/bin/env git commit');
                } else {
                    passthru('/usr/bin/env git commit -m "' . (string) $message . '"');
                }
            }
        ),
        'info' => 'phpinfo',
        'my' => array(
            'function_one' => array($myClass, 'one'),   //assuming MyClass has a method "one"
            'function_two' => array($myClass, 'two')    //assuming MyClass has a method "two"
        )
    )
);
$manager->setPrompt(': ');
$manager->run();

上面的示例会产生以下可能的自动完成情况。

  • 无单词
    • git
    • info
    • my
  • 第一个单词是git
    • add
    • commit
  • 第一个单词是my
    • function_one
    • function_two

安装

手动安装

mkdir -p vendor/net_bazzline/php_component_cli_readline
cd vendor/net_bazzline/php_component_cli_readline
git clone https://github.com/bazzline/php_component_cli_readline .

使用 Packagist

composer require net_bazzline/php_component_cli_readline:dev-master

API

API 可在 bazzline.net 查找。

其他优秀组件

结语

如果您喜欢它,请给它加星。如果您需要它,请提出问题。如果您喜欢它,请拉取补丁。如果您使用它,请写一篇博客:-D。