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

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,需要将目录的/换成//.

时间: 2024-10-29 21:39:26

PHP Yii开源框架入门学习(四)添加新模块的相关文章

PHP Yii开源框架入门学习(二)修改Yii网站访问路径

默认网站访问路径如下所示: http://127.0.0.1:8080/zuizen/index.php?r=admin/UserInfo/admin 这种路径对搜索引擎不友好,需要改成如下形式: http://127.0.0.1:8080/zuizen/admin/UserInfo/admin.html 以下步骤实现以上要求: 1) 修改Apache配置,使其支持重写: 打开Apache配置文件httpd.conf:开启apache的mod_rewrite模块: 去掉LoadModule re

PHP Yii开源框架入门学习(三)Yii的相关配置总结

以下是Yii相关配置的总结: 1,/protected/config/main.php中的配置: 1) 修改默认Controller,下载下来的源代码默认Controler为siteController: 在protected/config/main.php中,修改键defaultController的值为指定的controller,在该controller中须指定默认action.当request中未明确目的时,采用defaultController/defaultAction来响应. 'de

PHP Yii开源框架入门学习(一)

以下是给成员进行Yii框架培训写的一些内容. 1) 下载Yii 1.1.12:http://yii.googlecode.com/files/yii-1.1.12.b600af.tar.gz 2) 解压到/var/www/html, 并将目录重命名为yii: 3) 访问http://127.0.0.1/yii/requirements/index.php,检查电脑环境是否符合yii要求,不符合请安装所缺软件:若显示php pdo未成功,则请检查php.ini配置项是否和1.9中一致: 4) 为方

基于ASP.NET MVC的ABP框架入门学习教程_实用技巧

为什么使用ABP我们近几年陆续开发了一些Web应用和桌面应用,需求或简单或复杂,实现或优雅或丑陋.一个基本的事实是:我们只是积累了一些经验或提高了对,NET的熟悉程度. 随着软件开发经验的不断增加,我们发现其实很多工作都是重复机械的,而且随着软件复杂度的不断提升,以往依靠经验来完成一些简单的增删改查的做法已经行不通了.特别是用户的要求越来越高,希望添加的功能越来多,目前这种开发模式,已经捉襟见肘.我很难想象如何在现有的模式下进行多系统的持续集成并添加一些新的特性. 开发一个系统时,我们不可避免的

Laravel 5 框架入门(四)完结篇_php实例

Page 和评论将使用 Eloquent 提供的"一对多关系".最终,我们将得到一个个人博客系统的雏形,并布置一个大作业,供大家实战练习. 1. 初识 Eloquent Laravel Eloquent ORM 是 Laravel 中非常重要的部分,也是 Laravel 能如此流行的原因之一.中文文档在: 1. http://laravel-china.org/docs/5.0/eloquent 2. http://www.golaravel.com/laravel/docs/5.0/

JavaScript的Backbone.js框架入门学习指引_基础知识

1.简介最近在做一个大型网上银行项目前端的优化,需要使用一个胖客户端的优化,大概思路就是前端通过Ajax 请求去后端获取数据,以Jason的格式返回,然后显示在页面上.由于这个系统非常庞大,胖客户端方案难免需要在客户端写大量的JS代码.我想对于任何团队来说,大量的,非结构化的代码维护起来都非常的不方便.所以BackBone进入了我的视线. 它提供了一种途径可以让你结构化你的JS代码,让你以面向对象的方式来组织你的前端JS代码.这就好比我们在前端应用Domain Driven Design. 我们

ALinq 入门学习(四)--查询关键字

在SQL查询中对应着各种各样的查询关键字,如果distinct,count,sum 等等一些关键字.在Linq to SQL 中对这些关键字的使用做了封装,同样在ALinq 中也有相同的操作函数.   1. ALinq 过滤查询重复数据 Distinct ALinq 过滤查询重复数据Distinct  1 /// <summary> 2         /// ALinq 查询关键字 Distinct 3         /// </summary> 4         publi

03_Nginx添加新模块

 1 进入nginx安装目录,查看nginx版本及其编译参数: [root@localhost nginx]# ./nginx -V nginx version: nginx/1.8.0 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) built with OpenSSL 1.0.1c 10 May 2012 TLS SNI support enabled configure arguments: --sbin-path=/usr/lo

开源框架思索-----一篇醍醐灌顶的好文章

本文源于IT168 作者 陈雄华 http://tech.it168.com/o/2006-12-13/200612131101722.shtml 1 空前繁荣的开源世界 大致2000年以前,Java世界还是Sun一言九鼎,唯我独尊的时代.Sun发布的任何规范和标准都无一例外地被Java社区有意无意的追捧着,Java世界沉浸在一片歌功颂德,前拥后簇的氛围里.IBM,Bea,Oracle这些Java阵营的代表者也都为能最先最快实现Sun的各种规范而弹冠相庆. 但这三四年来,Java的列车驶进了春秋