Zend Framework是为PHP 5开发的一套开源面向对象的Web应用程序框架。该框架经常被称为“组件库”,这是因为它由许多松耦合的组件组成,并可以或多或少地无依赖地应用于你的应用系统。而且ZF还提供了一套高级的model-view-controller (MVC)实现,你可以使用它为你的应用程序建立基础结构。除了ZF组件的简短描述外,完整组件列表你可以在这里找到。(Quick Start

  • Zend MVC框架中经常被使用的组件有:
  • Zend_Controller
  • Zend_Layout
  • Zend_Config
  • Zend_Db
  • Zend_Db_Table
  • Zend_Registry
  • a few view helpers

模型

(model)

 应用程序的模型部分关心的是欲显示的数据的细节,是应用程序的业务逻辑部分,是如何使用数据库来读取和保存数据。

视图

(view)

 视图关心的是用户显示的部分,它通常是HTML。

控制器

(controller)

 控制器将特定的模型和视图结合起来,保证将正确的数据显示到页面上。

 

  1. 说明:
  2. Zend Framework需要PHP 5.1.4或更高版本以及支持mod_rewrite功能的Web服务器的支持。

  3. Apache Web服务器的mod_rewrite扩展模块,是一个基于一定规则的实时重写URL请求的引擎。此模块提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。此URL操作可以依赖于各种测试,比如服务器变量、环境变量、HTTP头、时间标记,甚至各种格式的用于匹配URL组成部分的查找数据库。此模块可以操作URL的所有部分(包括路径信息部分),在服务器级的(httpd.conf)和目录级的(.htaccess)配置都有效,还可以生成最终请求字符串。此重写操作的结果可以是内部子处理,也可以是外部请求的转向,甚至还可以是内部代理处理。但是,所有这些功能和灵活性带来一个问题,那就是复杂性,因此,不要指望一天之内就能看懂整个模块。(参考
  4. .htaccess文件(或者"分布式配置文件")提供了针对每个目录改变配置的方法,即在一个特定的目录中放置一个包含指令的文件,其中的指令作用于此目录及其所有子目录。(参考
  5. 必须保证Apache已配置成支持.htaccess文件的模式。通常这可以通过在httpd.conf中将
      AllowOverride None
    改成
      AllowOverride All
    来实现。如果没有正确配置mod_rewrite及.htaccess,将导致一些页面无法访问。
  6. 如果使用Apache的目录级Rewrite,则需要同时设置"RewriteEngine On"和"Options FollowSymLinks"。如果管理员禁止了该目录的FollowSymLinks特性,重写引擎将不会工作,这样做的原因是处于安全方面的考虑。
  7. Zend Framework可以点这里下载最新版本。

       解压后Zend Framework包含两个重要的部分 library 和 incubator。library目录为官方发布的代码,使被严格审查过的代码,包含了ZF的所有组件;incubator目录中是已经通过建议程序但尚不成熟的代码,故未包含在library目录中。所以解压后library目录是我们所必须的,而且该目录一定要被你的PHP include_path环境变量引用。

 

       创建MVC工程目录结构:

       library/          <-- 所有第三方库
               Zend/          <-- Zend Framework所在的目录,即上面所说的library目录中Zend目录
            application/    <-- 基于Zend Framework的应用程序所在目录
               controllers/  <-- 所有控制器所要放置的目录
               models/       <-- 所有模型所要放置的目录
               views/          <-- 所有视图所要放置的目录
                    scripts/
                          index/  <-- 一个对应控制器的视图目录
             public/               <-- web root, 有些例子中使用public这个名字
                    images/

                    css/

                    js/

                    .htaccess    <- Rewrite规则,以及一些PHP配置可以在该文件中定义

                    index.php   <- 请求的入口点

public目录应该包含所有通过Web直接访问的文件。

 

Zend Framework 的 MVC 实现利用了 Front Controller 模式,如下图:

前端控制器模式

开启Apache的Rewrite模块,我在测试的时候使用了目录级的请求Rwrite方式,所以在httpd.conf文件的末尾添加了如下配置:

后面我可以用 http://localhost/zftest 来访问ZF框架的应用,而不会影响我的Apache下的其他应用程序。

 

        至此,我们暴露给外界的是public目录,但是并非目录中所有内容我们都希望外界能够直接访问,这也是出于安全性考虑,当然也是ZF MVC框架单一入口点所要求的。所以,这里我们需要添加一个.htaccess文件,来定义相关请求转发到应用程序的入口点(index.php)文件,内容如下:

现在可以测试一下, index.php是否可以访问,在index.php文件中添加如下内容:

 

然后,打开浏览器,在地址栏中输入 http://localhost/zftest 测试下页面上是否会显示'Hello, Zend Framework!' 字样。

我这里并不是忘记了书写PHP标签 ?> ,而是为了避免在响应请求时输出不必要的空格。这种书写方法是Zend Framework coding standards所推荐使用的。

 

 

后面内容,待续!(本以写完,哭中ING。。。)

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐