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 全角转半角实现代码
May 16 PHP
php网站来路获取代码(针对搜索引擎)
Jun 08 PHP
php下封装较好的数字分页方法
Nov 23 PHP
linux下为php添加curl扩展的方法
Jul 29 PHP
php生成excel列名超过26列大于Z时的解决方法
Dec 29 PHP
PHP获取文件相对路径的方法
Feb 26 PHP
php无序树实现方法
Jul 28 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
Aug 25 PHP
php有效防止同一用户多次登录
Nov 19 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
Dec 29 PHP
PHP中的use关键字及文件的加载详解
Nov 28 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 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
收音机的保养
2021/03/01 无线电
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
浅析javascript闭包 实例分析
2010/12/25 Javascript
jQuery EasyUI API 中文文档 - Menu菜单
2011/10/03 Javascript
jquery常用操作小结
2014/07/21 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
AngularJS中的指令全面解析(必看)
2016/05/20 Javascript
Jil,高效的json序列化和反序列化库
2017/02/15 Javascript
利用 spin.js 生成等待效果(js 等待效果)
2017/06/25 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
Javascript中从学习bind到实现bind的过程
2018/01/05 Javascript
node.js域名解析实现方法详解
2019/11/05 Javascript
Vue开发环境跨域访问问题
2020/01/22 Javascript
Python常见文件操作的函数示例代码
2011/11/15 Python
在Heroku云平台上部署Python的Django框架的教程
2015/04/20 Python
将Python代码打包为jar软件的简单方法
2015/08/04 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
Python协程的用法和例子详解
2017/09/09 Python
Python lambda函数基本用法实例分析
2018/03/16 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
2018/06/05 Python
python的concat等多种用法详解
2018/11/28 Python
Python OpenCV 使用滑动条来调整函数参数的方法
2019/07/08 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
如何安装ruby on rails
2014/02/09 面试题
应聘护士自荐信
2013/10/21 职场文书
毕业自荐书
2013/12/09 职场文书
校园安全教育广播稿
2014/02/17 职场文书
小学生学习雷锋倡议书
2014/05/15 职场文书
2015秋季幼儿园开学寄语
2015/03/25 职场文书
草房子读书笔记
2015/06/29 职场文书
JavaScript 去重和重复次数统计
2021/03/31 Javascript
Node实现搜索框进行模糊查询
2021/06/28 Javascript
redis requires ruby version2.2.2的解决方案
2021/07/15 Redis