Yii2 中关于模块(Modules)的使用及配置

本文详细介绍了Yii2框架中的模块概念,解释了为何在大型项目中使用模块以实现代码分组和重用。文章涵盖了创建及配置模块的步骤,包括模块类文件、配置、访问方法以及模块独立配置的实现,特别是如何处理模块的独立返回类型设置。通过实例展示了在`config.php`中进行模块特定配置的方法,以覆盖主题应用的默认配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是模块

(如果你的需求是对模块或子模块进行独立配置,请查看文末!)
在Yii2.x框架中,引入了模块(Modules)这个概念,那么什么是模块呢?

模块是独立的软件单元,由模型,视图, 控制器和其他支持组件组成, 
终端用户可以访问在应用主体中已安装的模块的控制器, 模块被当成小应用主体来看待,
和应用主体不同的是, 模块不能单独部署,必须属于某个应用主体。

上面的描述是简单理解就是你在现有的框架中又创建了一个子应用主体,但是这个子应用必须依赖于框架本身这个主应用主体,不能独立部署。
看图,表现的比较直接:
在这里插入图片描述
图中红框所示的module就是模块所在的位置,其中存在一个admin模块。(图片的logo挡住了最下面的一个非常重要的文件,Admin.php)。下面具体介绍

为什么使用模块

模块在大型项目中常备使用,这些项目的特性可分组, 每个组包含一些强相关的特性, 每个特性组可以做成一个模块由特定的开发人员和开发组来开发和维护。

在特性组上,使用模块也是重用代码的好方式, 一些常用特性,如用户管理,评论管理,可以开发成模块, 这样在相关项目中非常容易被重用。

创建及配置模块

模块被组织成一个称为 base path 的目录, 在该目录中有子目录如 controllers,models,views 分别为对应控制器,模型,视图和其他代码,和应用非常类似。 以我上图例子为例:

admin/
    Admin.php                   模块类文件
    config.php                  模块配置文件(自行手动创建)
    controllers/                 包含控制器类文件
    models/                      包含模型类文件
    views/                       包含控制器视图文件和布局文件
模块类文件

每个模块都有一个继承 yii\base\Module 的模块类, 该类文件直接放在模块的 base path 目录下, 并且能被 自动加载。当一个模块被访问, 和 应用主体实例 类似会创建该模块类唯一实例,模块实例用来帮模块内代码共享数据和组件。比如上例的Admin.php就是admin模块的模块类文件

<?php

namespace app\modules\admin;

use yii\base\Module;
/**
 * Admin module definition class
 */
class Admin extends Module
{
   
    /**
     * @inheritdoc
     */
    public $controllerNamespace = 'app\modules\admin\controllers';

    /**
     * @inheritdoc
     */
    public function init()
    {
   
        parent::init(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

millet109

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值