`

关于 Zend 框架 MVC 应用程序项目结构的建议

 
阅读更多

概述

许多开发者寻找在一个相对灵活的环境中,对于一个 Zend 框架项目最好的项目结构的指南。一个灵活的环境是,开发者可以在这个环境中执行他们的文件系统和 web 服务器设置以达到最理想化的项目结构来运行和保护他们的应用程序。默认的项目结构将假设开发者拥有这样的灵活性。

以下的目录结构被设计成最大扩展性来适应复杂的项目,同时对于更简单的要求,为项目提供了一简单的文件夹和文件子集。这个结构不需要转化就可以同时作用于有 modular 和没有 modular 的 Zend 框架应用程序。.htaccess 文件要求在 web 服务器中设置 URL 重写功能(重写设置指南中有介绍,在附件中有介绍)。

这个项目结构的目标不是支持所有的 Zend 框架项目要求。被 Zend_Tool 所使用的默认的项目文档反映了这个目录结构,但是不被这个结构支持的应用程序应使用一个定制的项目文档。

建议项目目录结构

ImageHost.org

以下描述了列出的目录的使用方法。

  • application/:这个目录包括了你的应用程序。它会成为 MVC 系统的家,同时包括配置,使用的服务,和你的 bootstrap 文件。
    • configs/:全应用程序范围的配置目录。
    • controllers/models/,和 views/:这些目录用于默认的控制器,模型或者视图目录。在应用程序的内部拥有这三个目录,对于开始一个简单的项目,和开始一个拥有全局 controllers/models/views的 modular 项目提供了最好的模板。
    • controllers/helpers/:这些目录将包括行为控制器。行为控制器将会在默认的模式中被命名为 Controller_Helper_,在其它的模式中被命名为 _Controller_Helper。
    • layouts/:这个是基于 MVC 模板的模板目录。由于 Zend_Layout 适用于基于 MVC 和不基于 MVC 的模板,这个目录的位置反映了模板和控制器不是1:1的关系,同时独立于 views/ 内的模板。
    • modules/:模式允许一个开发者把一套相关的控制器分组成一个逻辑组织的小组。模式下的结构将看起来和应用程序的目录下的结构很象。
    • services/:这个目录是用来放置由你的应用程序提供的应用程序特殊的 web 服务文件,或者为你的模式应用的一个服务层(Service Layer)。
    • Bootstrap.php:这个文件是你的应用程序的进口,而且它应该应用 Zend_Application_Bootstrap_Bootstrapper。这个文件的目的是为了启动应用程序,同时通过初始化组件使得组件对于应用程序可用。
  • data/:这个目录提供了存储应用程序数据的地方,这些数据是多变的可能也是临时的。这个目录中的数据紊乱将可能导致应用程序的失败。同时,对于一个 subversion repository,这个目录的信息可以会或者不会被忽视。在这个目录的文件包括对话文件,缓存文件,sqlite 数据库,日志和索引。
  • docs/:这个目录是用于存放应用程序所依靠的普通库文件,而且应该被包括到 PHP 的 include_paht 路径。开发者应该把他们的应用程序的库代码放到这个目录下,用一个独一无二的命名空间,遵从 PHP 手册中的 Userland Naming Guide 指引,如同 Zend 的库文件一样。这个目录可能还包括 Zend 框架本身;如果可能,你可能把它放在 library/Zend/
  • public/:这个目录包括你应用程序的全部公开文件(public files)。index.php 建立并唤起 Zend_Application,然后唤起 application/Bootstrap.php 文件,结果是分发前端控制器。你的 web 服务器的 web 根目录典型的被设置成这个目录。
  • scripts/:这个目录包括维护和/或创建脚本。这些脚本可能包括命令行,cron,或者 phing 创建的脚本,在运行的时候不执行,但是对于应用程序的正常运转是不可少的。
  • temp/temp/ 文件夹是
  • tests/

模式结构

模式结构应该模仿建议项目结构中的 application/ 目录:

ImageHost.org

这些目录的目的在于保持和建议项目目录结构一样的结构。

重写设置指南

URL 重写是 HTTP 服务器的一个普通功能。然而,不同的 HTTP 服务器的重写规则和设置差别很大。以下是在写下这篇文章的时候应用比较多的 web 服务器的重写方法

Apaceh HTTP 服务器

所以的例子跟随使用 mod_rewrite,一个和 Apache 捆绑发行的官方模块。为了使用它,mod_rewrite 必须在编译的时候被包括或者被设置成 Dynamic Shared Object(DSO)。请查看与你版本相关的 Apache 文档来获得更多信息。

在一个虚拟主机内重写

以下的一个很基础的虚拟主机定义。这些规则把所有的请求导向 index.php,除了在 document_root 下找到一个匹配的文件。

ImageHost.org

注意 index.php 前面的斜线(“/”);和 .htaccess 中的重写规则有不同。

在一个 .htaccess 文件中重写

以下是一个使用 mod_rewrite 的 .htaccess 文件样本。它和虚拟主机配置相似,除了它只指定重写规则,以及取消了 index.php 的前置斜线。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

有许多种方法来配置 mod_rewriter; 如果你想要更多信息,看一下 Jayson Minard 的 >> Blueprint for PHP Applications: Bootstrapping

Mircrosoft Internet Information 服务器

对于7.0版本的 IIS,拥有了一个标准的重写引擎。你可以使用以下的配置来创建合适的重写规则。

ImageHost.org

分享到:
评论

相关推荐

    Zend框架和相关配置

    Zend框架是PHP开发中的一个强大工具,它是一个全功能的MVC(Model-View-Controller)框架,旨在提高开发效率,提供代码复用性,并确保应用程序的可维护性。本资源包包含了 Zend 框架的基本组件以及一些常用的配置...

    理解 Zend 框架(IBM经典中文教程)

    - **灵活性**:尽管 Zend 框架提供了一系列强大的组件和服务,但它也允许开发者根据项目需求选择性地使用其中的部分组件,而不必完全依赖整个框架。 #### 三、Zend 框架核心组件介绍 ##### 3.1 Zend_Controller -...

    zend控制台、zend路由器、zend view和zend mvc之间的集成.zip

    在实际开发中,`zend-mvc-console-master` 这个目录可能包含了用于演示或示例代码的项目,它可能展示了如何在 Zend MVC 应用程序中集成 Zend Console,让你可以在命令行下执行一些操作,同时利用 Zend Router 管理...

    经典zend 框架入门教程

    本教程旨在介绍如何使用Zend框架创建一个简单的基于数据库的应用程序,并遵循模型-视图-控制器(MVC)设计模式。通过本教程的学习,您将能够掌握Zend框架的基本用法,包括安装配置、环境搭建以及开发流程。 #### 二...

    zend完整框架Demo

    Zend框架是PHP编程中的一款强大、可扩展且企业级的应用程序开发框架,它基于MVC(Model-View-Controller)架构模式,旨在提高开发效率、代码质量和可维护性。本Demo是针对PHP5.3版本设计的,展示了Zend框架的核心...

    zend框架写的blog程序

    "zend框架写的blog程序"是一个使用 Zend Framework 构建的博客应用示例,它展示了如何利用该框架搭建功能齐全的 Web 应用。从描述中可以看出,这个程序可能需要 Apache 的 mod_rewrite 功能以提供友好的 URL。通过...

    zend framework win7 xampp 框架完整正确基础mvc模型

    2. **创建项目**:在新创建的项目目录下,使用命令行工具运行`php bin\zf.php create project`,这将生成一个标准的MVC项目结构。 3. **配置Apache**:打开`httpd.conf`文件,找到`DocumentRoot`,将其指向你的项目...

    Zend Framework 框架开发入门教程

    **MVC** 是一种设计模式,用于分离应用程序的不同关注点: - **Model (模型)** :负责处理业务逻辑和数据操作。 - **View (视图)** :展示用户界面,呈现数据。 - **Controller (控制器)** :接收用户输入,调用...

    zend 框架手册介绍

    2. **创建项目结构**:定义应用程序的基本目录结构。 3. **编写控制器**:创建控制器类来处理不同的HTTP请求。 4. **定义模型**:设计模型类来操作数据库中的数据。 5. **设计视图**:制作视图模板来展示数据。 6. *...

    PHP5应用实例详解:使用Zend Framework & smarty构筑真正的MVC模式应用 源码

    1. **安装和配置Zend Framework和Smarty**: 设置环境,包括下载并安装这两个框架,配置项目目录结构,确保所有依赖项已正确安装。 2. **理解MVC模式**: 学习MVC的基本概念,包括模型、视图和控制器的角色,以及它们...

    PHP框架高级编程-应用Symfony,CakePHP和Zend

    在PHP的世界里,框架是开发高效、可维护和可扩展应用程序的重要工具。本主题将深入探讨三个备受推崇的PHP框架:Symfony、CakePHP和Zend。这些框架提供了丰富的功能,简化了开发过程,使得PHP开发者能够更快地构建...

    MVC模式与PHP开发框架——MVC模式与PHP开发框架

    MVC将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller),各自负责不同的职责。 **20.1 MVC概述** - **用户界面**:用户界面是用户与应用交互的部分,负责展示信息和接收用户输入。在...

    Zend开发手册 zend框架手册

    Zend Framework 是一个基于模型-视图-控制器(MVC)架构模式的开源PHP Web应用程序框架。它提供了一套全面的工具和服务,用于构建高效、可扩展且易于维护的Web应用。"Zend开发手册"是理解并精通这个框架的关键资源...

    Mvc.rar_PHP MVC_PHP MVC框架_mvc_php smarty_smarty

    【标题】"Mvc.rar" 是一个关于PHP MVC框架的压缩包,其中包含了作者基于对"Zend Framework"的研究,实现的一个轻量级MVC结构。"PHP MVC"是PHP(一种服务器端脚本语言)中用于构建Web应用的一种设计模式,它将应用...

    zendframwork框架包

    总的来说,这个压缩包提供了一个基本的Zend Framework项目结构,适合初学者了解和实践框架的使用。通过这些文件,你可以学习如何配置和运行一个简单的 Zend Framework 应用,理解MVC架构,以及如何组织代码以实现...

    php+mysql直销系统源码,含数据库 zend框架

    Zend框架提供了一系列工具和服务,简化了开发流程,包括MVC(Model-View-Controller)模式,使得模型、视图和控制器之间分离,增强了代码的可读性和可维护性。此外,Zend框架还支持依赖注入,便于单元测试和代码复用...

    zend framework PHP框架一小时速成

    开发者可以根据项目需求自由组合不同的组件,比如数据库操作、缓存机制、身份验证等,来构建符合业务逻辑的应用程序。 #### 四、安装和配置 1. **安装**:可以通过Composer进行安装。首先确保系统中已安装有...

    Zend Framework自制框架

    Zend Framework 是一个用于构建 Web 应用程序和服务的全功能 MVC (Model-View-Controller) 框架,它遵循了面向对象的设计原则,并且提供了丰富的组件库来加速开发过程。 **描述分析:** 描述中提到“后台样式...

Global site tag (gtag.js) - Google Analytics