官方文档
http://www.yiiframework.com/doc-2.0/guide-structure-modules.html
自己的一些理解:
application和console本质上也都是module
我们建立的module实质上都是application的子模块
module里加载特定配置
Module.php
<?php namespace app\modules\testmod; /** * testmod module definition class */ class Module extends \yii\base\Module { /** * @inheritdoc */ public $controllerNamespace = ‘app\modules\testmod\controllers‘; /** * @inheritdoc */ public function init() { parent::init(); \Yii::configure($this, require(__DIR__ . ‘/config.php‘)); // custom initialization code goes here } }
config.php,这里和config/web.php的原理是一样的。
<?php return [ ‘components‘ => [ ‘db‘ => require(__DIR__ . ‘/db.php‘), ], ‘params‘ => [ ‘adminEmail‘ => ‘[email protected]‘, ], ];
控制器里使用模块的配置
print \Yii::$app->params[‘adminEmail‘]; // application的参数 print $this->module->params[‘adminEmail‘]; // 当前模块的参数 print $this->module->db->createCommand("SELECT COUNT(1) FROM testmod")->queryScalar(); // 当前模块的组件
视图里使用模块的配置
<?= $this->context->module->params[‘adminEmail‘] ?>
时间: 2024-10-07 20:40:28