Last Update 2009-9-10
一、环境:
Windows 2003 Server
Apache/2.0.55
php-5.2.6
pecl-5.2.6
ZendFramework-1.9.2
MySQL 5.0.18-nt
二、基本配置
1.下载框架包 http://framework.zend.com/download
2.完成PHP的基本环境配置(不再叙述了)
3.PHP.ini配置文件修改
extension=php_pdo.dll
extension=php_pdo_mysql.dll
两项前的分号去除
4.Apache配置文件httpd.conf修改
LoadModule rewrite_module modules/mod_rewrite.so 开启
<Directory />
Options FollowSymLinks
AllowOverride All 设置为All
</Directory>
5.建立项目目录
6.建立数据库,建立表book
id int pk auto_increment
title varchar
description varchar
7.开始编码
(1).htaccess文件
RewriteEngine引擎启动,并把对除过js、ico、gif、jpg、png、css等图片、js脚本、css的请求,都发送到index.php文件中。
(2)启动文件
index.php
要配置前端路由器,这样它就知道从哪个目录里找出我们的控制器
(3)控制器
在ZF框架中控制器是一个必需被叫做{Controllername}Controller 的类。
注意{Controller name}必需以大写字母开头。
并且,这个类必须在叫做{Controller name}Controller.php 这样的文件中,这个文件还必需在特定的控制器目录中。如:controllers目录
{Controller name}必需以大写字母开头并且其它字母一定是小写
每个action是在控制器类里的public函数,名字必需是{action name}Action
在这里,{action name}应该以小写字母开头
/application/controllers/IndexController.php
可在地址栏输入地址进行测试: xx表示项目设置的虚拟目录(根路径)
http://localhost/xx/index 调用 indexAction
http://localhost/xx/index/add 调用 addAction
http://localhost/xx/index/edit 调用 editAction
http://localhost/xx/index/edit 调用 deleteAction
(4)设置视图 /application/views/scripts
视图将允许把显示页面的代码从action 函数里分离出来。
将共同的代码提取
/application/views/scripts/header.phtml
/application/views/scripts/footer.phtml
header.phtml
footer.phtml
修改IndexController添加一个新的函数叫做init(),它被Zend_Controller_Action 的构造器自动地调用;确保视图能够在开始被初始化并且确信它已经准备好能被用在action函数中。
function init()
{
$this->initView();
//得到当前根路径
$this->view->baseUrl = $this->_request->getBaseUrl();
}
在各个Action函数中,分别加入,以供View中调用获得
$this->view->title = "新增 Book";
$this->view->title = "编辑 Book";
$this->view->title = "删除 Book";
编写
/application/views/scripts/index/index.phtml
/application/views/scripts/index/add.phtml
/application/views/scripts/index/edit.phtml
/application/views/scripts/index/_form.phtml (供add.phtml和edit.phtml来引用)
(5)连接数据库,完成最终功能
创建配置文件/application/config.ini
启动文件index.php中加入数据库连接代码
建立模型/application/models/Book.php
Zend_Db_Table 提供了所有我们需要的常用的数据库函数。
如果需要特殊的函数管理你的模型,就可以把它们放到这个类里。(其它的特殊业务)
控制器的各Action中编写处理代码,调用模型提供的相关函数来完成实际的操作。
在deleteAction中,注释掉的是其它文档上这样写的,本人觉得没必要这么复杂,所以稍微修改了一下代码。
(6)最终的表示层
index.phtml 显示列表界面
_form.phtml 表单界面(由add和edit共用)
add.phtml
edit.phtml