エクステンションを作成して(もちろんコンポーザーを通してロードする)、Module.php
が内部にあり、コンソールコントローラ(端末で呼び出すことができる)へのパスが保持されます。
common\modules\commander
namespaceのサンプルを作成します。ベンダー拡張の名前空間は異なりますが、すべて同じ方法で動作します。
namespace common\modules\commander;
use yii\base\Module as BaseModule;
class Module extends BaseModule
{
public $controllerNamespace = 'common\modules\commander\controllers';
public function init()
{
parent::init();
}
}
そしてTestController.php
がyii\console\Controller
から継承されています:
namespace common\modules\commander\controllers;
use yii\console\Controller;
class TestController extends Controller
{
public function actionIndex()
{
echo 123;
}
}
を、メイン部分 は、だから私は
<app>
common
modules
commander
controllers
• TestController.php
• Module.php
マイModuleクラスは以下のように見える私の拡張のために、以下のファイル構造を持っていますすべて動作させるには、Module.phpをconsole/config/main.php
の設定で登録することです。
ここ
'modules' => [
'commander' => [
'class' => \common\modules\commander\Module::className(),
],
...
],
それは今あなたのようなあなたのコマンドを使用することができ、次のとおりです。
yii commander/test/index
そして、それはすべての作品やコンソールコントローラを別のフォルダに配置されていることを示し、あなたに123
を印刷しますよ!
誰もが与えることができるように、それはまあまあ良い説明でした。釘付け、すぐに働く。ありがとうございました! – diabetesjones
あなたはようこそ、糖尿病=) – Yerke