PHP完全自学手册(珍藏版) 中文pdf扫描版下载
模块是一个功能独立的逻辑单元,每一个模块都可以包含有多个子模块,但每个模块只能有一个对应的父模块(如果有的话)。它的定义在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)中的所有的操作及属性都可应用于应用程序