我的实践demo: 下载 注意下载的doc换成rar就可以了
声明:如发现资料中有错误或不足之处,望不吝指正!!
调试环境:
操作系统:windows vista homebasic
PHP版本:5.2.5;
Apache版本:2.2.6;
MySql版本:5.0.45;
Zend Framework版本:1.10.3;
开发工具:easy Eclipse;
注:本教程根据http://www.akrabat.com中文版改编,原版zf是0.9的版本!!由于本人也是初学,使用该教程调试时发现好多代码无法正常使用,所以结合自己的学习经验,总结一下,写在这里。
首先需要了解一下zf的运行环境:运行zf要求PHP版本是5.1.4或者更高,很多教程上明确指出“强烈建议使用5.2.3以后的版本”,因为这两个版本之间PHP作了重大修改和功能的完善!
搭建环境就不写了,只要是PHP的版本在5.1.4+就可以了;下面列出配置方法和要求:
获取Zend Framework:可以从官方网站http://framework.zend.com/download 最新的Zend版本;
配置:
打开apache的rewrite模块:进入apache安装目录,打开apache配置文件httpd.conf,找到LoadModule rewrite_module modules/mod_rewrite.so,将前面的分号去掉;
配置工程时会创建一个名为.htaccess的文件,我们需要配置apache支持,还是打开httpd.conf文件,查找AllowOverride None,将None改成All;
做完以上两步,重启apache服务器,就可以开始zf之旅了!!
初学Zend Framework,所以还是参照原文,还是制作一个非常简单的库存系统网站,还是用这个简单的系统来管理我们的CD收藏,并允许我们对CD收藏执行增、删、改、查等操作。
我们把这些存储在一个简单的数据库里面。数据库系统打算如下设计:
数据库名:phpdb;sql语句:
create database phpdb;
//创建表:
create table album(
id int not null primary key auto_increment,
artist varchar(30) not null,
title varchar(100) not null
)engine MyISAM default charset utf8;
由于这仅是一个简单的总结,所以,之于注册登录之类的东东就不写了……^-^ ^-^
所需要的页面:
Add.phtml //这个是实现增加CD功能的视图
Index.phtml //这个是显示CD列表;
Edit.phtml //这个页面用于实现修改功能
-----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------
好了,接下来该创建框架了!!
在easy Eclipse里创建如下图所示目录结构:
图 1 zf框架目录结构
说明:虽然Zend没有强求使用一个统一的目录结构,但是有关Zend的手册还是推荐了一个通用的目录结构,具体请参加Zend Framework手册;上图的创建过程是这样的:先创建一个名为zf-tutorial的php工程,工程创建好后,Eclipse会自动生成.settings目录和.project文件,这两个是Eclipse的默认系统文件,不用管它。
接下是创建目录和文件,参照下图(下图也是最终目录结构)!
图 2 最终目录结构
先参考上图创建好你的目录结构,各个目录的作用后面会详细解释!!
建立好如上图所示的目录结构后,把下载的Zend Framework文件解压,将解压后的library目录下的zend目录拷贝到新建立的目录结构中的library目录下,如上图所示:
拷贝完成后,Eclipse的自动提示功能会报错或者提示警告,这个不必担心,先不用管它,因为Eclipse在当前目录下找不到文件就会报错,这个是工具的问题,先不考虑。
接下来创建两个文件,即.htaccess文件和index问价,放到zf-tutorial根目录下,如图2所示。
打开.htaccess文件,输入如下内容:
RewriteEngine on
RewriteRule .* index.php
php_flag magic_quotes_gpc off
php_flag register_globals off
这个文件的作用是将本网站所有的请求定位到index.php文件上,实现当以入口的功能。文件的意思很简单,即对于任何url,定位到index.php。
但是,网站公用的图像、js程序以及css文件不应该被重新定向到index.php,由于这些文件全部存放在public目录中,所以在public目录下添加一个.htaccess文件,写上这样一句话:
RewriteEngine off //即关闭重定向;
另外:为了安全,建议在图2 所示的目录下都建立一个这样的文件,来保护我们的程序:
zf-tutorial/application/.htaccess
deny from all
zf-tutorial/library/.htaccess
deny from all
这样设置的好处似乎是多余的,但是并不为错,这样的多重保护貌似更安全。这种设置多个.htaccess文件的注意来自Jayson Minard 的文章 “Blueprint for PHP Applications:
Bootstrapping (Part 2) ”. 建议大家去读读整个系列文章。具体这篇文章我也没读过,不过既然原教程这样写,我也不妨借鉴一下!!^-^
接下来就该设置我们的启动文件了,也就是传说中的index.php;我们在zf-tutorial目录下新建一个php文件,名字叫做:index.php。打开index文件,写上如下内容:
<?php
error_reporting(E_ALL | E_STRICT);
date_default_timezone_set("Asia/Shanghai");
set_include_path("." . PATH_SEPARATOR . "./library" .
PATH_SEPARATOR . "./application/models" .
PATH_SEPARATOR . get_include_path());
require_once ("Zend/Loader/Autoloader.php");
Zend_Loader_Autoloader :: getInstance()->setFallbackAutoloader(true);
$registry = Zend_Registry :: getInstance();
$view = new Zend_View();
$view->setScriptPath('./application/views/scripts/');
$registry['view'] = $view;
$frontController = Zend_Controller_Front :: getInstance();
$frontController->setBaseUrl('/zf-tutorial')
->setParam('noViewRenderer', true)
->setControllerDirectory("./application/controllers")
->throwExceptions(true)
loading