/ yii2

yii2-module

module 相当于一个独立的 application,但是和 application 的区别是不能单独发布。

新建模块使用 Gii 代码生成器:

chrome_2018-04-10_13-23-28

例如可以为当前应用 app 创建一个 forum (论坛)模块。

  • Module Class:app\modules\forum\Module
  • Module ID: forum

或者为 api 应用创建版本化的 restful 接口:

  • Module Class:api\modules\v1\Module
  • Module ID: v1

通常 api 应用会创建多个模块来标识 api 的版本号。

return [  
    'id' => 'app-api',  
    ...
    'modules' => [  \\ 添加模块v1和v2,分别表示不同的版本  
        'v1' => [  
            'class' => 'api\modules\v1\Module'  
        ],  
        'v2' => [  
            'class' => 'api\modules\v2\Module'  
        ]  
    ],
    'controllerNamespace' => 'api\controllers', 
    'components' => [  
        'user' => [  
            'identityClass' => 'common\models\User',  
            'enableAutoLogin' => false, // API change to false  
            'enableSession' => false,  // API ++  
            'loginUrl' => null // API ++  
        ],  
        ...  
        'urlManager' => [  
            'enablePrettyUrl' => true, // 启用美化URL  
            'enableStrictParsing' => true, // 是否执行严格的url解析  
            'showScriptName' => false, // 在URL路径中是否显示脚本入口文件 
            'rules' => [  
                  [  
                      'class' => 'yii\rest\UrlRule',  
                      'controller' => [  
                          'v1/site'  
                      ]  
                  ],  
                  [  
                      'class' => 'yii\rest\UrlRule',  
                      'controller' => [  
                          'v2/site'  
                      ]  
                  ]  
              ]  
         ],  
    ],  
];