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 相关文章推荐
function.inc.php超越php
Dec 09 PHP
PHP 面向对象 PHP5 中的常量
May 05 PHP
php UBB 解析实现代码
Nov 27 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
Jun 24 PHP
php+xml实现在线英文词典之添加词条的方法
Jan 23 PHP
Php-Redis安装测试笔记
Mar 05 PHP
php使用标签替换的方式生成静态页面
May 21 PHP
PHP实现简单汉字验证码
Jul 28 PHP
win7系统配置php+Apache+mysql环境的方法
Aug 21 PHP
thinkPHP的表达式查询用法详解
Sep 14 PHP
PHP+AJAX 投票器功能
Nov 11 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 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配置心得包含MYSQL5乱码解决
2006/11/20 PHP
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
js和php邮箱地址验证的实现方法
2014/01/09 PHP
php中hashtable实现示例分享
2014/02/13 PHP
JQery 渐变图片导航效果代码 漂亮
2010/01/01 Javascript
在JavaScript中使用NaN值的方法
2015/06/05 Javascript
详解AngularJS中的依赖注入机制
2015/06/17 Javascript
详解使用fetch发送post请求时的参数处理
2017/04/05 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
layui实现checkbox的目录树tree的例子
2019/09/12 Javascript
JS实现电脑虚拟键盘的操作
2020/06/24 Javascript
vue 通过 Prop 向子组件传递数据的实现方法
2020/10/30 Javascript
python实现360皮肤按钮控件示例
2014/02/21 Python
Python解析网页源代码中的115网盘链接实例
2014/09/30 Python
Python制作CSDN免积分下载器
2015/03/10 Python
Scrapy的简单使用教程
2017/10/24 Python
Python实现图片滑动式验证识别方法
2017/11/09 Python
python如何读写json数据
2018/03/21 Python
Python实现对特定列表进行从小到大排序操作示例
2019/02/11 Python
浅谈Python基础—判断和循环
2019/03/22 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
详解pyppeteer(python版puppeteer)基本使用
2019/06/12 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
2020/03/09 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
2020/11/05 Python
input元素的url类型和email类型简介
2012/07/11 HTML / CSS
美国最大的家庭鞋类零售商之一:Shoe Carnival
2017/10/06 全球购物
Magee 1866官网:Donegal粗花呢外套和大衣专家
2019/11/01 全球购物
教师推荐信范文
2013/11/24 职场文书
协议书格式
2014/04/23 职场文书
读书笔记格式
2015/07/02 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
MySQL窗口函数的具体使用
2021/11/17 MySQL
python中filter,map,reduce的作用
2022/06/10 Python