0

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/ にコピーすることですが、このファイルをモジュール内に保持して、何らかの形で参照したいのです。

4

2 に答える 2

1
'commandMap'=>array(
  'passwordtest'=>array(
    'class'=>'application.modules.myModule.commands.shell.passwordtestCommand',
),

これは、Yii 1.x でモジュール コマンドを実行するのに役立ちます

config/console.php または別のコンソール構成ファイルに追加するだけです。パス部分「.myModule.commands.shell.passwordtestCommand」も変更

応援してください、それは私のために働いています。

于 2016-01-21T13:47:18.613 に答える
1

実際にはそれほど難しいことではありません。 CConsoleApplication-class には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、フレームワークから を必要としなくなります。

それはそれを行う必要があります。

于 2014-02-06T18:10:14.977 に答える