运行yiic时,是否可以让我的模块的自定义命令显示在应用程序命令列表中?
cd {yii_protected_folder}
yiic shell {full_path_to_my_yii_protected_folder}/config/console.php
我已尝试将该命令添加到console.php中的commandMap数组中,但该命令从未显示为yiic中的选项。
'commandMap'=>array(
'passwordtest'=>array(
'class'=>'application.modules.myModule.commands.shell.passwordtestCommand',
),
我可以将它显示在yiic中的唯一方法是将passwordtestCommand.php文件复制到{yii_protected_folder} / commands / shell /,但我宁愿将文件保存在我的模块中并以某种方式引用它。
答案 0 :(得分:1)
实际上并不那么难,CConsoleApplication
- 类有CConsoleCommandRunner
的吸气剂。这又有一个“addCommands()
” - 函数,允许您添加路径。只需打开protected/yiic.php
并按此更改:
<?php
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('YII_DEBUG') or define('YII_DEBUG',true);
require_once(dirname(__FILE__).'/../yii/yii.php');
$app = Yii::createConsoleApplication(dirname(__FILE__).'/config/console.php');
$app->commandRunner->addCommands('extraCommandPath');
$app->commandRunner->addCommands('extraCommandPath2');
$app->run();
之后,您不再需要框架中的yiic.php
。
应该这样做。
答案 1 :(得分:1)
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-ddThh:mm:ssZ"));
这有助于我在Yii 1.x中运行模块命令
只需将其添加到config / console.php或您的其他控制台配置文件中即可。 也改变路径部分&#34; .myModule.commands.shell.passwordtestCommand&#34;
欢呼,它为我工作。