2015-07-05 31 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高级应用结构是像我这样的情况下更好。但是这个解决方案完美:)。

最好。

相关问题