加入收藏 | 设为首页 | 会员中心 | 我要投稿 佛山站长网 (https://www.0757zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP Yii开源框架入门学习(四)添加新模块

发布时间:2013-11-19 15:51:37 所属栏目:PHP教程 来源:站长网
导读:1) 打开Gii代码生成工具,进入Module Generator页面,输入模块名如test,点击生成; 2) 生成的代码在protected/modules/test目录下,生成的文件如下: test/Test
1) 打开Gii代码生成工具,进入Module Generator页面,输入模块名如test,点击生成;

2) 生成的代码在protected/modules/test目录下,生成的文件如下:

test/TestModule.php    ----  模块主类,继承自CWebModule

test/controllers/DefaultController.php  ----- 默认Controller,里面有一个index action,action跳转到index视图;该模块的Controller都放在这个目录下

test/views/default/index.php  --- 这是DefaultController的视图文件,对应index action;所有DefaultController的action的视图文件都放在这里;

3) 配置模块

在config/main.php里的modules中加入该模块:

'modules'=>array(

          'main',

          'admin',

          'test',

),

4) 在模块初始化函数中设置默认项:打开TestModule.php,在init方法中加入:

Yii::app()->errorHandler->errorAction = 'test/default/error';

Yii::app()->defaultController = 'test/default';

Yii::app()->user->loginUrl = 'test/default/login';

请确保这些action和controller都已经实现。

5) 打开浏览器,访问:http://127.0.0.1/zuizen/test/即可访问到默认的首页,这个首页是默认Controller DefaultController里的默认Index action跳转到的default/index.php的视图。

6) Yii的模块中,所有Controller全部放在conroller目录下,每一个controller都对应一个目录,目录位于views下,里面存放该controller所有action对应的view。一般来讲,一个独立action都会对应一个view。

7) 加入需要添加模块独有的model和component,则都加在test/models 和test/components目录下,在TestModule模块类中会自动将他们引入:

          $this->setImport(array(

                   'test.models.*',

                   'test.components.*',

          ));

8) 需要添加模块独有的layout,请加到test/views/layouts目录下,使用该layout时使用:/layouts/layoutName来调用,layout可以嵌套,父layout用<?php echo $content; ?>来为子layout占位,子layout内容包含在以下语句中,其中指定父layout:

<?php $this->beginContent('/layouts/main'); ?>

<?php $this->endContent(); ?>

9) 在Controller中指定该Controller所有action默认使用的layout

在Controller类中定义以下变量,以覆盖父类中的默认值:

public $layout='/layouts/main';

public $defaultAction='index';

如果要是有网站根目录下的layout,需要将目录的/换成//.

(编辑:佛山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读