六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 74|回复: 0

PHP Zend Framework单表CRUD入门示例

[复制链接]

升级  0.67%

11

主题

11

主题

11

主题

秀才

Rank: 2

积分
51
 楼主| 发表于 2013-1-29 07:33:52 | 显示全部楼层 |阅读模式
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引擎启动,并把对除过jsicogifjpgpngcss等图片、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.phtmledit.phtml来引用)

 

 

(5)连接数据库,完成最终功能

创建配置文件/application/config.ini

 

启动文件index.php中加入数据库连接代码

 

 

 

 建立模型/application/models/Book.php

 

 

 

Zend_Db_Table 提供了所有我们需要的常用的数据库函数。

如果需要特殊的函数管理你的模型,就可以把它们放到这个类里。(其它的特殊业务)

 

 

控制器的各Action中编写处理代码,调用模型提供的相关函数来完成实际的操作。



 

 

 

  


 
在deleteAction中,注释掉的是其它文档上这样写的,本人觉得没必要这么复杂,所以稍微修改了一下代码。

 

(6)最终的表示层

index.phtml 显示列表界面

 

 

 

_form.phtml  表单界面(由addedit共用)

 

 

 

add.phtml



 

 

edit.phtml



 

 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表