從控制器運行控制檯命令我做了大的工作的應用程序的一些重構。這涉及到將我構建的一些工具(如命令行的模式/種子遷移工具)分離到其自己的存儲庫以供多個應用程序使用。Yii2:在供應商目錄
如果是在控制檯/控制器,它就會回升。如果我將它們移動到自己的資源庫,並通過作曲家需要它,我怎麼Yii的知道,當我說php yii db/up
,我的意思是去到new\vendor\namespace\[email protected]
?
從控制器運行控制檯命令我做了大的工作的應用程序的一些重構。這涉及到將我構建的一些工具(如命令行的模式/種子遷移工具)分離到其自己的存儲庫以供多個應用程序使用。Yii2:在供應商目錄
如果是在控制檯/控制器,它就會回升。如果我將它們移動到自己的資源庫,並通過作曲家需要它,我怎麼Yii的知道,當我說php yii db/up
,我的意思是去到new\vendor\namespace\[email protected]
?
如果您創建了一個擴展(當然通過作曲者加載它),您可以在裏面找到Module.php
,這將保存控制檯控制器的路徑(您可以通過終端調用)。
我會寫我的例子爲common\modules\commander
命名空間,供應商擴展您的命名空間會有所不同,但對於所有的人都以同樣的方式工作。 所以我有以下文件結構,我的分機
<app>
common
modules
commander
controllers
• TestController.php
• Module.php
我模塊類看起來如下:
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;
}
}
與主要部分使一切工作是在console/config/main.php
設置
'modules' => [
'commander' => [
'class' => \common\modules\commander\Module::className(),
],
...
],
這是,現在你可以使用你的命令,如:
yii commander/test/index
,它會打印您123
,表明一切正常和控制檯控制器位於不同的文件夾!
好yerke,這是一樣好一個解釋,任何人都可以給任何東西。釘住它,立即工作。謝謝! – diabetesjones
歡迎你,diabetesjones =) – Yerke