作者:Chris Shiflett
翻译:ShiningRay
我们邀请了PHP安全专家——兼最新发布的Zend Framework的贡献者——Chris Shiflett来为我们写一篇关于ZF主要特点的文章。
这份完整的、按部就班的教程通过向你展示如何应用框架写出一个简单的新闻管理系统,为你提供了构
建实际应用的独特视角。
Zend Framework终于掀开了其神秘的面纱!尽管它尚处于开发过程的早期阶段,但本文将现在所能用的中最好的部分特别呈现给读者,并通过构建一个简单的应用这个过程引导你了解这个框架。
Zend很早就发布了框架并引入社区运作。写本指南只能针对框架今天的情况来列出其特点。因为本指南是在线发布的,所以我会在框架发生变化的时候及时更新本文,这样就能尽可能保持一致。
要求Zend Framework 要求使用 PHP 5。为了能完全利用本指南中展示的代码,你还需要Apache Web服务器,因为范例应用(一个新闻管理系统)用到了mod_rewrite。
本指南中的代码可以自由下载,所以你可以亲自尝试一下。可以从Brain Bulb的网站上下载到:
http://brainbulb.com/zend-framework-tutorial.tar.gz.
下载框架在开始阅读本指南之前,你还需要先下载一份框架的预览发布版。可以用浏览器察看http://framework.zend.com/download 并选择 tar.gz 或者 zip 文件手工下载,也可以使用下面的命令行:
清单1
$ wget http://framework.zend.com/download/tgz
$ tar -xvzf ZendFramework-0.1.2.tar.gz注意 Zend已经计划提供一个独立的PEAR通道来方便下载。
下载了预览发布版之后,将这个库的目录放到一个方便的地方。在本教程中,我将库的目录名改称了lib
,以便提供一个简单干净的目录结构:
清单2
app/
+-views/
+-controllers/
www/
+- .htaccess
+- index.php
lib/www 目录是文档根目录,controllers和views目录为空,是将来要用的,lib目录是来自于下载的预
览版。
入门
我第一个要向你展示的组件是Zend_Controller。在很多情况下,它为要开发的应用提供了一个基础,同时它也是令Zend Framework超越了组件集合的一个部分。不过在使用它之前,需要将所有进入的请求引导到某个PHP脚本中。本教程将使用mod_rewrite来完成这个目的。
如何用好mod_rewrite确实是一门艺术,不过还好本文中这个特殊的任务十分简单。如果你对
mod_rewrite或者是Apache的一般配置还不是很熟悉的话,可以在文档根目录下创建一个.htaccess文件
,并加入一下指令:
清单3
RewriteEngine on
RewriteRule !.(js|ico|gif|jpg|png|css)$ index.phpZend_Controller目前的任务之一就是去掉对
mod_rewrite的依赖。为了提供一个预览版可以使用的例子,本教程便使用了mod_rewrite。
如果你直接在httpd.conf中添加这些指令,还必须重新启动Web服务。但是,如果使用.htaccess文件,
就不用了,而且这样更好。你可以随便在index.php中写点东西,然后任意请求某些路径来测试一下,比
如/foo/bar。例如,如果你的主机是example.org,那么就请求URL http://example.org/foo/bar。
可能你还想在 include_path 中包含框架库的路径。你可以直接在php.ini中配置,或者可以将以下指令
放入.htaccess文件中:
清单4
php_value include_path "/path/to/lib"Zend
Zend 类包含了一系列十分通用也十分有用的静态方法。这是唯一一个需要手工进行包含的类:
清单5