一、Yii 安装与环境检测
从 www.yiiframework.com 获取一份Yii的拷贝,解压到 /wwwroot/yii 目录。
打开浏览器访问 http://127.0.0.1/yii/requirements/index.php,检测本地环境支持。
二、建立项目与目录介绍
在命令行环境,cd命令进入到 Yii 框架核心目录 /wwwroot/yii/framework ,键入命令行: php yiic webapp ../blog (注意:确保php.exe的路径配置到环境变量)
回车后,得到一条确认提示,yes 确定即可。这时在 yii 目录下有了blog 目录,结构如下:
1
2
3
4
5
6
7
|
assets: 公共资源目录,存放JS,CSS,图片资源等等
protected
:书写MVC代码的主要目录
themes:主题目录
uploads:这个是我自己添加的图片上传目录
.htaccess: 用于Apache重写
index-text.php:功能测试的入口文件,没用
index.php:单入口文件
|
三、设置默认控制器与载入模板
1、创建控制器
1
2
3
4
5
|
class
IndexController
extends
Controller{
public
function
actionIndex() {
//...
}
}
|
访问:index.php?r=index/index
r是 route 路由的缩写,/ 分隔 index 控制器和 index 方法
2、配置默认控制器
默认访问:控制器SiteController下面的actionIndex方法
Config/main.php是主配置文件,在其中加入:
1
|
'defaultController'
=>
'Index'
,
|
3、载入视图
在控制器方法中,有两个方法可以加载视图:
1
2
|
$this
->render();
// 会加载布局文件
$this
->renderPartial();
// 不会加载布局文件(也不能加载框架自带的jQuery等)
|
方法中传递视图文件名(YII 1.1.17 中的控制器方法名以 "action" 为前缀,比如 "actionIndex" )
在视图目录:
根据控制器名字建立文件夹,里面的文件名是 render 或者 renderPartial 方法传递的名字
例如:
控制器是 Index ,则需要建立 Index 文件夹,在 Index 文件夹下建立 index.php 文件,然后渲染视图
1
2
3
|
$this
->render(
'index'
);
// 或者
$this
->renderPartial(
'index'
);
|
四、布局介绍
1、什么是局部
在 views/layouts 下面的文件是布局文件(有每个模板的公共区域),用 render() 方法渲染视图时会自动加载的文件
修改步骤:
- views/layouts下面的,新建布局文件
- 修改默认布局文件:
位置: components/Controller.php ,基类控制器
修改属性, public $layout = '//layouts/column1';
这表示使用 protected/views/layouts/column1.php 文件作为默认的布局文件
2、布局内容
举个栗子就明白了,比如,一张 html 网页:
上面是公用头部 html:一般是顶栏,logo, 导航栏等等
中间左侧的主内容依照不同的网页有不同的内容,使用 <?php echo $content; ?>
中间右侧是侧栏 html
尾部是公用尾部 html:一般是版权信息等等
五、载入外部文件
CSS与Js等资源文件放入assets里面,按照前后台目录分开
Yii::app()->request->baseUrl;可以获取请求的基础路径
例如: <?php echo Yii:app()->request->baseUrl; ?>/assets/index/css/index.css 将得到一个纸箱前台首页的 css 文件 url
Yii::app() 返回的是在index.php入口里创建的CWebApplication实例。在一次请求处理过程中,这是唯一的实例
Yii::app() 主要负责一些全局性的功能模块。
六、分配变量并在视图中调用
1、控制器分配变量
1
2
3
4
5
|
$data
=
array
(
'articleList'
=>
$articleList
,
'page'
=>
$page
);
$this
->render(
'index'
,
$data
);
|
2、视图中调用变量
1
2
3
|
<?php
foreach
(
$article
as
$v
): ?>
<li><?php
echo
$v
->title; ?></li>
<?php
endforeach
; ?>
|
七、扩展自定义函数
在protected目录下建立function.php文件
在单入口中引入,
require_once('./protected/function.php');
- 作者:mingc
- 出处:http://www.cnblogs.com/mingc
- 声明:本文出自博客园。转载请注明出处,并在文章页面明显位置给出原文链接,否则保留追究其法律责任的权利。