net_bazzline / php_component_cli_readline
此包已被废弃且不再维护。未建议替代包。
自由软件中的PHP组件,简化在PHP 5.3及以上版本中使用PHP readline实现的过程
1.2.2
2017-05-05 20:32 UTC
Requires
- php: >=5.3.3
- net_bazzline/php_component_cli_arguments: 1.4.*
- net_bazzline/php_component_generic_agreement: 1.0.*
Requires (Dev)
- mockery/mockery: 0.9.4
- phpunit/phpunit: ~4.8.0||~5.2.0
README
我仍然喜欢这个想法,但目前没有进一步开发的用例。
PHP的Readline组件
本项目旨在提供一个易于使用且自由软件的PHP组件,用于处理Unix控制台readline和自动完成PHP脚本。
请查看 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。