php2011 zendFramework 深入学习及案例说明

2011-05-01 21:05:26 by 【6yang】, 260 visits, 收藏 | 返回

Zend Framework 基础


我的实践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中文版改编,原版zf0.9的版本!!由于本人也是初学,使用该教程调试时发现好多代码无法正常使用,所以结合自己的学习经验,总结一下,写在这里

 

首先需要了解一下zf的运行环境:运行zf要求PHP版本是5.1.4或者更高,很多教程上明确指出“强烈建议使用5.2.3以后的版本”,因为这两个版本之间PHP作了重大修改和功能的完善!

   

搭建环境就不写了,只要是PHP的版本在5.1.4+就可以了;下面列出配置方法和要求:

获取Zend Framework:可以从官方网站http://framework.zend.com/download 最新的Zend版本;

配置:

打开apacherewrite模块:进入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收藏执行增、删、改、查等操作。

我们把这些存储在一个简单的数据库里面。数据库系统打算如下设计:

 

数据库名:phpdbsql语句:

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-tutorialphp工程,工程创建好后,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)

分享到:
share

    图片原图

    loading

    loading