1,Yii模块简介
Yii中的模块,可以把它看做成一个单独的应用,它具有独立的控制器、模型、视图以及组件等。
通常情况下,我们使用Yii做WEB项目开发,那么“默认的Yii应用”我们可以作为WEB的前台,当需要有一个后台的时候,
这个情况下就需要新建立一个“模块”,然后让这个新建立的模块充当“后台”的角色。
想必这种比喻最能够说明Yii中模块的含义了。。。。。。
现在我们的项目结构如下图:
那么当我们在浏览器中访问:http://localhost/testyii/index.php?r=site/index 或者 http://localhost/testyii/
的时候,访问到的是:protected/controllers/SiteController.php 中的 SiteController类中的actionIndex方法,调用的视图是动作方法中指定的视图文件:$this->render('index');,视图文件位于:protected/views/site/index.php
那这个默认访问到的应用,我们叫它是“默认的Yii应用”
2,神奇的gii
在Yii中存在这么一个东西叫“gii”
使用它可以“自动创建”Yii中的模块、控制器、表单、数据库CURD操作、数据模型
我也把它叫做“Yii中的魔术师”,但是我除了在创建模块的时候需要它上场之外,其它的都不会去使用它,因为我还是觉得“自己动手丰衣足食”
3,使用gii创建”后台模块“
在Yii中,对于”单独的应用“是以”模块“的形式存在,而对于”核心及扩展类“则是以”组件“的形式存在
那么gii是属于一个”单独的应用“,因此它是以”模块“的形式存在,如果要使用gii,则首先需要在项目的主配置文件
main.php中去”开启gii模块“,main.php文件位于:protected/config
打开main.php文件,找到如下图所示代码处,默认情况下gii模块是被注释掉的,则需要去掉注释。
然后通过浏览器访问:http://localhost/testyii/index.php?r=gii
当提示需要输入密码的时候,就输入上面我们自己设置的密码即可,登录进去之后的界面如下图:
进入到”自动创建模块“,界面如下:
点击”Generate“进行生成,结果如下:
当生成之后,在”protected“目录下会多出一个”modules“文件夹,在该文件夹下面就是我们创建的所有的”模块“
那为了在项目中引入并使用这个模块,我们需要在main.php做一些配置,根据上面的提示。
然后就可以通过浏览器来访问当前的模块:http://localhost/testyii/index.php?r=admin
访问后的界面如下图:
根据显示的结果,我们会发现,默认情况下后台模块的视图文件采用的布局文件是我们前台应用的布局文件,那这个也是说明了Yii的一个特点,就是:对资源的高度重复利用
Yii系统会在你访问后台模块渲染视图文件的时候去寻找布局文件,当发现后台模块并没有指定布局文件,或者说指定后台模块控制器继承的”Controller“时就会向上寻找,也就是找到了默认应用”protected/components“下面的”Controller“,然后把该”Controller“中指定的布局文件应用到后台模块界面中。
那为了让后台模块具有自己的布局文件该怎么办?
首先需要在后台模块中创建一个”components“文件夹,然后再在该文件夹下面创建”Controller“控制器,如下图:
然后在该”Controller“中,指定后台模块的布局文件,或者是将后台模块的布局文件设置成没有,那么这个过程和前台设置布局文件的方法是一致,这里不做赘述。
我这里会把后台布局文件设置为没有,因为一般WEB后台是不需要布局文件的。
下一节继续:默认控制器修改、设置模块的单独配置文件、”后台“搭建及表单初探