Yii入门教程之目录结构、入口文件及路由设置


Posted in PHP onNovember 25, 2014

项目名称从“FantaCMS”修改成为“testyii”—————— 俗!

1,项目目录结构分析

Yii入门教程之目录结构、入口文件及路由设置

Yii入门教程之目录结构、入口文件及路由设置

2,Yii入口文件分析

Yii入门教程之目录结构、入口文件及路由设置

在Yii启动项目时,传递了项目主配置文件数组,那么Yii会在整个应用中绑定一个全局的Yii对象并且可以通过如下方法来调用该对象:Yii::app()

Yii系统把配置文件中的数组值,通过键值对的形式绑定到了该对象上,例如在配置文件中我们配置了:

'name'=>'My Web Application',

那么我们在项目的任何一个地方通过该对象的属性就可以获取到“name”的值,方法为:

Yii::app()->name;

3,Yii路由设置

Yii入门教程之目录结构、入口文件及路由设置

同时应该知道:对于控制器名,Yii首先会检测当前的控制器名是否是一个“模块名”,如果是模块名则先定位到模块。

“模块”会在后面搭建项目的时候解释。

通过上面的路由访问到的就是:SiteController.php类文件下的SiteController类中的actionIndex方法

控制器文件位于:protected/controllers 目录下,也就是我们的控制器文件存放目录

注意Yii中控制器文件和动作方法名的书写方式,控制器有统一的后缀”Controller“,动作方法也有统一的前缀”action“,同时要求动作方法名的命名规范符合”除第一个单词外其它每个单词的首字母要大写“

由于Yii默认的控制器名为:site

默认的动作名为:index

因此上述通过指定控制器名动作名访问的路径和直接访问:http://localhost/testyii/   的效果是一致的

4,视图调用

在动作方法中,调用:$this->render('index');

来为对应的动作方法指定视图文件,视图文件位于:protected/views/site  目录下

其中:site为对应的控制器名文件夹,每个控制器名在视图中都应该具有一个唯一的文件夹名与其相对应

然后在动作方法中通过‘index'来指定显示的具体视图文件是site控制器下的指定的‘index.php'视图文件

另外还需要注意:

调用视图的方法有两个:

$this->render                            ----> 会调用模板文件

$this->renderPartial                   -----> 不会调用模板文件

它们之间的区别,也如上所述。

5,视图模板设置

打开SiteController.php文件,其中的代码截图如下:

Yii入门教程之目录结构、入口文件及路由设置

我们发现:Yii应用中,每个控制器都要继承自公共控制器“Controller”

然后打开“Controller”控制器文件:Controller.php,它位于:protected/components  目录下

“Controller”控制器代码截图如下:

Yii入门教程之目录结构、入口文件及路由设置

Yii通过:public $layout='//layouts/column1'; 来指定动作方法的公共模板文件

公共模板文件位于:protected/views/layouts 目录下,如下图:

Yii入门教程之目录结构、入口文件及路由设置

现在我们来创建我们的模板文件:testlayout.php,代码如下:

Yii入门教程之目录结构、入口文件及路由设置

其中”<?php echo $content; ?>“为Yii中规定的模板文件中的内容替换方法

然后,修改 ”Controller“控制器中的模板文件为:public $layout='//layouts/testlayout';

然后访问:http://localhost/testyii/index.php?r=site/index    结果如图:

Yii入门教程之目录结构、入口文件及路由设置

然后我们发现,模板文件已经变成我们自己指定的了,然后假如你不需要视图文件渲染模板文件,那么你可以在动作方法中调用视图文件的时候使用:$this->renderPartial  方法

或者你整个项目都不需要调用模板文件,那么你可以在动作方法中调用视图文件时全部用:$this->renderPartial 

也或者将视图模板文件设置为”空“,例如:public $layout='';

下一节继续:Yii的魔术师:gii,Yii模块及模块自定义

PHP 相关文章推荐
用PHP动态创建Flash动画
Oct 09 PHP
PHP 分页类(模仿google)-面试题目解答
Sep 13 PHP
探讨GDFONTPATH能否被winxp下的php支持
Jun 21 PHP
PHP实现今天是星期几的几种写法
Sep 26 PHP
php之curl实现http与https请求的方法
Oct 21 PHP
PHP中shuffle数组值随便排序函数用法
Nov 21 PHP
老版本PHP转义Json里的特殊字符的函数
Jun 08 PHP
php精确的统计在线人数的方法
Oct 21 PHP
php封装好的人民币数值转中文大写类
Dec 20 PHP
在PHP语言中使用JSON和将json还原成数组的方法
Jul 19 PHP
PDO::errorInfo讲解
Jan 28 PHP
tp5使用layui实现多个图片上传(带附件选择)的方法实例
Nov 17 PHP
Yii入门教程之Yii安装及hello world
Nov 25 #PHP
php 伪造ip以及url来路信息方法汇总
Nov 25 #PHP
浅析php适配器模式(Adapter)
Nov 25 #PHP
浅析php原型模式
Nov 25 #PHP
浅析php创建者模式
Nov 25 #PHP
浅析php工厂模式
Nov 25 #PHP
thinkphp3.2.2前后台公用类架构问题分析
Nov 25 #PHP
You might like
《PHP边学边教》(02.Apache+PHP环境配置――下篇)
2006/12/13 PHP
php生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
php xml实例 留言本
2009/03/20 PHP
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
2012/08/08 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
一段实时更新的时间代码
2006/07/07 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
2013/04/25 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
2013/09/05 Javascript
javascript Event对象详解及使用示例
2013/11/22 Javascript
必备的JS调试技巧汇总
2016/07/20 Javascript
Nodejs进阶:核心模块net入门学习与实例讲解
2016/11/21 NodeJs
nodejs 实现钉钉ISV接入的加密解密方法
2017/01/16 NodeJs
AngularJs 常用的过滤器
2017/05/15 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
监听element-ui table滚动事件的方法
2019/03/26 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
微信小程序图片自适应实现解析
2020/01/21 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
小程序自动化测试的示例代码
2020/08/11 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
Python常用正则表达式符号浅析
2014/08/13 Python
浅析Python中的多条件排序实现
2016/06/07 Python
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
python基础教程项目二之画幅好画
2018/04/02 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
Ever New加拿大官网:彰显女性美
2018/10/05 全球购物
JAVA高级程序员面试题
2013/09/06 面试题
小松树教学反思
2014/02/11 职场文书
开展创先争优活动总结
2014/08/28 职场文书
学校领导班子对照检查材料
2014/08/28 职场文书
文明单位申报材料
2014/12/23 职场文书
2015大学迎新晚会策划书
2015/07/16 职场文书