2015-07-05 52 views
0

我有一個yii2基本應用程序和2部分(網絡和移動服務)。爲什麼Yii2模塊單獨配置不適用於基本應用程序?

我已經創建了一個模塊來處理來自移動設備的平穩請求。我想配置這個模塊休息。所以我在模塊目錄中爲這個模塊創建了一個配置文件。如在yii2 documentation for modules

/config/config.php提到:

return [ 

'components' => [ 
    'urlManager' => [ 
     'class' => 'yii\web\UrlManager', 
     // Disable index.php 
     'showScriptName' => false, 
     // Disable r= routes 
     'enablePrettyUrl' => true, 
     'enableStrictParsing' => false, 
     'rules' => array(

      [ 
       'class' => 'yii\rest\UrlRule', 
       'controller' => 'mobile/mobile-clients', 
       'extraPatterns' => ['GET search' => 'search'] 
      ], 

     ), 
    ], 
    'request' => [ 
     'class' => '\yii\web\Request', 
     'enableCookieValidation' => false, 
     'parsers' => [ 
      'application/json' => 'yii\web\JsonParser', 
     ], 
    ], 
] 

]; 

模塊類如下:

<?php 

namespace app\modules\Mobile; 

use Yii; 
use yii\base\Module; 

class MobileService extends Module { 

    public $controllerNamespace = 'app\modules\Mobile\controllers'; 

    public function init() { 
     parent::init();  
     Yii::configure($this, require(__DIR__ .DIRECTORY_SEPARATOR  
        .'config'.DIRECTORY_SEPARATOR .'config.php')); 

    } 
}   

的問題是,在請求組件未正常工作預計雖然它在配置應用程序配置(config/main.php)時工作正常

與urlManager相同。

任何想法?

+1

爲什麼要複製這些組件?只複製實例,以便每個實例只有一個。從來沒有一個好主意,以複製在所有地方使用的組件 – Blizz

+0

@robsch我想定製移動模塊的組件是安寧,這就是我想要的,這是正確的方式 – Boudi

+0

@Blizz任何想法 – Boudi

回答

0

我的問題的解決方案是創建api應用程序,它是yii2基本應用程序中的新應用程序。它共享模型和供應商目錄,但具有自己的配置和條目腳本(index.php)。這是solution link瞭解更多信息。

編輯

不要忘記添加用戶組件在api.config文件

'user' => [ 
    'identityClass' => 'app\models\User', 
    'enableAutoLogin' => false, 
    ], 

我認爲使用yii2高級應用結構是像我這樣的情況下更好。但是這個解決方案完美:)。

最好。

相關問題