ltd-beget / yiiic
具有智能自动完成和上下文工作流的yii2交互式控制台
v0.7.0
2018-02-15 12:07 UTC
Requires
- php: >=7.0.0
- ridzhi/smarrt: ~2.0
- symfony/process: ^3.1
- yiisoft/yii2: ~2.0
Requires (Dev)
- phpunit/phpunit: 5.4.*
README
#Yiiic - Yii2交互式控制台 yiiic
交互式控制台实现了智能自动完成和上下文工作流。
##安装 composer require ltd-beget/yiiic
##项目集成
将 yiiic
组件添加到控制台应用的配置文件
$application = new yii\console\Application([ ... 'components' => [ 'yiiic' => [ 'class' => \LTDBeget\Yiiic\Yiiic::class ] ] ]);
从 \LTDBeget\Yiiic\YiiicController
继承控制台控制器作为交互式模式的入口点
use yii\console\Controller; class YiiicController extends \LTDBeget\Yiiic\YiiicController { }
然后启动
yii yiiic [... options]
每个命令都在单独进程中执行
##智能自动完成 在控制台操作中,按TAB键会触发可能的控制器/动作/选项的自动提示。通过实现 ArgsCompleterInterface
接口,可以实现按参数的自动完成。自动完成按上下文进行,即如果您输入了 migrate [按TAB]
并按TAB键,则会获得 migrate
的动作列表。
##服务命令
- c - 切换上下文
- h - 帮助
- q - 退出
命令可以在任何位置传递,以下调用是等效的
migrate create c c migrate create
使用前缀 /
启动不带上下文的命令
##配置 按优先级升序排列配置
- default - 默认预设
- component config
- cli config (在启动yiiic模式时配置文件的路径,
yii yiiic --config=custom/config/path
) - cli option (特定选项的值,可用选项列表)
默认预设
[ // внешние зависимости 'entities' => [ // $options полностью собранный массив настроек(после мержа всех источников) // apiReflector должен имплементить LTDBeget\Yiiic\ApiReflectorInterface 'apiReflector' => function($options) { return new ApiReflector($options['ignore']); } ], 'options' => [ // не выводить в хелпе 'ignore' => ['yiiic', 'help'], 'prompt' => 'yiiic', 'show_help' => Conf::SHOW_HELP_ONCE, // если вылезет exception 'show_trace' => false, // путь к скрипту консольного приложения 'entry_script' => Conf::ENTRY_SCRIPT_CURRENT, 'commands' => [ 'context' => 'c', 'quit' => 'q', 'help' => 'h' ], 'without_context_prefix' => '/', // высота в строках хелпа, если не будет // помещаться, рассчитается так чтоб влезло 'height_help' => 5, // стили для стильных 'style' => [ 'prompt' => [Console::FG_GREEN, Console::BOLD], 'welcome' => [Console::FG_YELLOW, Console::BOLD], 'bye' => [Console::FG_YELLOW, Console::BOLD], 'notice' => [Console::FG_YELLOW, Console::BOLD], 'error' => [Console::BG_RED], 'help' => [ 'title' => [Console::FG_YELLOW, Console::UNDERLINE], 'content' => [Console::FG_YELLOW, Console::ITALIC] ], 'result' => [ 'border' => [Console::FG_CYAN], 'content' => [Console::FG_CYAN], 'separator' => '=' ] ] ] ];
###Cli选项 --trace - options.show_trace
--script - options.entry_script
##事件
- Yiiic::EVENT_BEFORE_RUN_ACTION
- Yiiic::EVENT_AFTER_RUN_ACTION
通过配置组件订阅或实现 YiiicController::prepareYiiic()
class YiiicController extends \LTDBeget\Yiiic\YiiicController { protected function prepareYiiic(Yiiic $yiiic) { $yiiic->on(Yiiic::EVENT_BEFORE_RUN_ACTION, 'func'); } }