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

 更新时间:2014年11月25日 15:57:28   投稿:hebedich   我要评论
本文从YII的目录结构开始分析,到入口文件分析,到路由设置详解,视图详解,十分全面的向我们展示了YII框架的方方面面,是篇非常不错的文章,这里推荐给大家。

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

1,项目目录结构分析

2,Yii入口文件分析

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

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

'name'=>'My Web Application',

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

Yii::app()->name;

3,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应用中,每个控制器都要继承自公共控制器“Controller”

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

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

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

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

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

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

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

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

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

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

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

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

相关文章

  • thinkphp实现上一篇与下一篇的方法

    thinkphp实现上一篇与下一篇的方法

    这篇文章主要介绍了thinkphp实现上一篇与下一篇的方法,以实例形式对比分析了两种不同的实现方法供大家选择,方法二在方法一的基础上增加了判断的功能,是非常实用的技巧,需要的朋友可以参考下
    2014-12-12
  • ThinkPHP表单令牌错误的相关解决方法分析

    ThinkPHP表单令牌错误的相关解决方法分析

    这篇文章主要介绍了ThinkPHP表单令牌错误的相关解决方法,分析了thinkPHP出现令牌错误的相关处理过程与解决方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-05-05
  • 支付宝服务窗API接口开发php版本

    支付宝服务窗API接口开发php版本

    这篇文章主要介绍了php版本的支付宝服务窗API接口开发,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Zend Framework框架中实现Ajax的方法示例

    Zend Framework框架中实现Ajax的方法示例

    这篇文章主要介绍了Zend Framework框架中实现Ajax的方法,结合实例形式详细分析了Zend Framework框架中实现ajax功能的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • 在PHP中实现使用Guzzle执行POST和GET请求

    在PHP中实现使用Guzzle执行POST和GET请求

    今天小编就为大家分享一篇在PHP中实现使用Guzzle执行POST和GET请求,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • 使用php测试硬盘写入速度示例

    使用php测试硬盘写入速度示例

    使用php写入一个1GB大小的文件,检查硬盘的写速率,可能有一定误差,一般电脑读写在20M/s,这个测试要执行大概40-50s
    2014-01-01
  • php实现mysql金沙国际官网操作类分享

    php实现mysql金沙国际官网操作类分享

    这篇文章主要介绍了php实现的mysql金沙国际官网操作类,本文最后有使用方法,需要的朋友可以参考下
    2014-02-02
  • PHP正则表达式入门教程(推荐)

    PHP正则表达式入门教程(推荐)

    正则表达式,大家在开发中应该是经常用到,现在很多开发语言都有正则表达式的应用。本文给大家介绍PHP正则表达式入门教程,感兴趣的朋友一起学习吧
    2016-05-05
  • Yii2中hasOne、hasMany及多对多关联查询的用法详解

    Yii2中hasOne、hasMany及多对多关联查询的用法详解

    hasOne、hasMany是Yii2特有的用于多表关联查询的函数,平时在使用多表关联查询的时候建议使用它们。这篇文章主要介绍了Yii2中hasOne、hasMany及多对多关联查询的用法详解,需要的朋友可以参考下
    2017-02-02
  • 浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势

    浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势

    本篇文章主要介绍了浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11

最新评论