最新消息: 新版网站上线了!!!

Yii2中的模块、应用程序(Module,Application)

模块(Module )


模块是一个功能独立的逻辑单元,每一个模块都可以包含有多个子模块,但每个模块只能有一个对应的父模块(如果有的话)。它的定义在yii\base\Module 


应用程序(Application)

Yii2中的应用程序有两种:web应用程序(yii\web\Application)控制台应用程序(yii\console\Application)。他们都继承于yii\base\Application。而yii\base\Application又是从模块yii\base\Module 继承来的。

所以web应用程序(yii\web\Application)和控制台应用程序(yii\console\Application)也都是模块。

但他们和普通的模块又不一样,这两个是可直接运行的特殊的模块,是所有其它自定义模块的根级别的父模块。

我们可以用yii提供的Gii来生成我们需要的模块
 

  • Module Class输入完整的命名空间和模块类名称

  • Module ID 是这个模块的唯一标识,不能和其它模块重复。


点击generator后生成
 
这个用Gii添加一个admin模块的界面。

我们用相同的方法再添加一个bbs模块和一个blog模块。最后生成的项目目录结构如下。
 
其中左侧的是配置文件,把这三个模块作为base application的子模块。
右侧为和modules目录下面生成的三个模块。每个模块都是独立的功能单元,可包含controller、views等等。


模块ID及访问

在yii中所有的module、controller、action都有id,唯独application是一个特例,它的ID为空,也就是说可运行的根结点的应用程序的ID为空。

我们要访问一个模块的话,路由格式为?r=module id/controller id/action id 其中模块的Id就为modules中对应的文件夹
因为应用程序(也就是根模块)的ID为空,所以访问应用程序的时候不需要加模块InD,它的路由格式为?r=controller id/action id


应用程序(Application)也是一种模块(Module),是存在于入口脚本中直接运行的模块。是当前应用程序中其它模块的父模块。模块(Module)中的所有的操作及属性都可应用于应用程序
 

转载请注明:谷谷点程序 » Yii2中的模块、应用程序(Module,Application)