框架主要是为了提高开发效率和支持多人团队开发而发明的。传统的平面式开发总是让每个软件项目从零开始,程序员不得不重复“制造轮子”的工作;而界面(html+css+javascript)与程序逻辑的混杂使程序员与界面制作的角色很难分离开来,这有可能使得应用程序在其生命周期中变得无法维护。
ZF的做法是,为了提高应用程序的可维护性,它将程序的代码分成如下三个不同的部分(通常也是独立的文件):
模型(M):应用程序的模型部分。关心的是显示的数据的细节。模型通常关注的是业务逻辑,以及如何从数据库中存取数据。在具体的代码中表现为一个一个不同的类,可以看做是一个用户自定义的类库。
视图(V):视图关心的是用户显示的内容,它通常是HTML。
控制器(C):控制器将模型和视图结合起来,保证将正确的数据显示到页面上。
也就是说,Zend Framework使用Model-View-Controller(MVC)架构。它将程序中不同的部分独立开来,使得应用程序的开发和维护变得更加容易。
1,ZF框架的设计思想和策略
ZF采用了前端控制器(Front Controller)设计模式,它把所有用户的请求发送到一个中心控制点,具体做法就是所有的请求都需要通过index.php进入。然后通过index.php中的脚本把用户请求分发到对应的控制器中,控制器负责调用模型中的逻辑和用户界面的呈现。
2,Apache对ZF的支持
为了实现ZF的设计思想,需要Web服务器的支持。Apache服务器是通过其mod_rewrite功能来实现的。
2.1配置mod_rewrite扩展需要去掉Apache的配置文件httpd.conf中以下语句前的注释符号#,使配置生效,即装载mod_rewrite.so模块。
LoadModule rewrite_module modules/mod_rewrite.so
还必须保证Apache已配置成支持.htaccess文件的模式。通常这可以通过在httpd.conf中将
<Directory "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs">
Options Indexes FollowSymLinks
#AllowOverride None
AllowOverride All
Order allow,deny
Allow from all
</Directory>
中的AllowOverride None改成AllowOverride All来实现。如果没有正确配置mod_rewrite及.htaccess,那么除了首页外将不能看到任何其它的页面。
保存配置,重启Apache服务,使配置生效。
2.2 .htaccess文件的内容:
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
意思是,让RewriteEngine引擎启动,并把对除过js、ico、gif、jpg、png、css等图片、js脚本、css的请求,都发送到index.php文件中。
3,第一个程序的目录结构
在htdocs下建立以下2个文件夹:phpchina1.com和app_phpchina1.com。
app_phpchina1.com下建立以下文件夹controllers、models、views。
这样一来,典型的文件夹结构形如:
…htdocs
app_phpchina1.com
controllers
models
views
library
Zend
phpchina1.com
phpchina1.com文件夹下存放index.php和.htaccess文件;
Controllers存放控制器文件;
models存放控制器文件;
views存放视图文件;
注意这只是ZF所推荐的文件夹的组织形式,但并不是必须的形式。实际项目中可以根据自己的具体情况灵活变通,这一点本教程的后面会详细的探讨。如果应用特别简单,models和views文件夹也许也用不到,我们下面的“最简单的ZF程序”即是如此。
4,最简单的ZF程序:Hello PHPChina1.com!
激动人心的时刻到了,我们讲运行我们的第一个ZF程序。
Index.php文件内容如下:
<?php
error_reporting(E_ALL|E_STRICT);
//设定时区
date_default_timezone_set('Asia/Shanghai');
//指明引用文件的路径
set_include_path('.' .
PATH_SEPARATOR . '../library/'.
PATH_SEPARATOR . '../App_phpchina.com/models/'.
PATH_SEPARATOR . get_include_path());
include "Zend/Loader.php";
Zend_Loader::registerAutoload();
$fc = Zend_Controller_Front::getInstance();
$fc->setControllerDirectory(array(
"default"=>'../app_phpchina1.com/controllers',
));
$fc->throwExceptions(true);
$fc->setParam('noViewRenderer', true);
$fc->setParam('noErrorHandler', false);
//开始运行程序
$fc->dispatch();
?>
Controllers文件夹下IndexController.php文件的内容:
<?php
class IndexController extends Zend_Controller_Action
{
function indexAction()
{
echo "Hello PHPChina1.com!";
}
function otherAction()
{
echo "this is other Action.";
}
}
?>
运行:
在浏览器地址栏输入
http://phpchica1.com:8080回车,浏览器将显示结果:
Hello PHPChina1.com!
如果看到上述信息,恭喜你,成功了!
下一节将对这里的2个文件的代码进行详细解释。
相关推荐
**基于Zend Framework框架的CMS PHP源代码详解** 在IT领域,内容管理系统(CMS)是用于构建和管理网站的软件工具,而PHP作为一种流行的服务器端脚本语言,常被用于开发Web应用,包括CMS。本资源提供了基于Zend ...
Zend Framework 3.0(简称ZF3)是一个基于PHP编程语言的开源Web应用程序框架,它遵循模型-视图-控制器(MVC)架构模式,并提供了丰富的工具和组件来帮助开发者构建高质量的Web应用。这个框架的核心理念是模块化、可...
- 运行Zend Framework需要以下条件: - PHP 5.1.4 或更高版本 - Web服务器需支持mod_rewrite功能,本教程推荐使用Apache作为服务器。 #### 七、安装与配置 - 可以从官方网站`...
- Zend Framework鼓励模块化开发,允许开发者创建自己的模块或使用社区开发的第三方模块。 **8. 性能优化** - ZF提供了各种策略和最佳实践,以提高应用程序的性能,包括缓存、优化的数据库查询和减少HTTP请求数量...
1. **入门指南**:介绍如何安装Zend Framework,设置开发环境,以及创建第一个项目。 2. **组件详解**:详细阐述每个组件的功能、用法和示例,如控制器、视图助手、模型、数据库访问等。 3. **最佳实践**:提供了...
9. **服务容器**:`Zend\ServiceManager`是Zend Framework 2及更高版本中的一个重要组件,但也可以通过第三方库在旧版本中使用。它允许你定义服务并按需注入,提高了代码的可测试性和灵活性。 10. **组件化**:Zend...
- Zend Framework是一个MVC(模型-视图-控制器)架构的PHP框架,它遵循面向对象编程原则,提供了一系列独立且可重用的组件,如路由、控制器、视图助手等。 - 在本项目中,`index.php`是入口文件,负责初始化Zend ...
作为一个初学者,您已经迈出了探索这个强大PHP框架的第一步。Zend Framework 是一个基于组件、采用模块化结构的开源PHP框架,它为开发者提供了构建高性能、可扩展的Web应用的强大工具。 在本教程中,您将了解到 ...
1. **安装与设置**:如何在你的开发环境中安装Zend Framework,包括配置PHP环境、设置自动加载器和创建第一个项目。 2. **MVC结构**:解释模型、视图和控制器各自的职责,以及如何组织代码以遵循这种架构。 3. **...
##### 14.3 第一个控制器测试 - 创建测试类。 - 编写测试用例。 ##### 14.4 失败的测试用例 - 通过编写失败的测试用例来验证测试的有效性。 ##### 14.5 配置测试的服务管理器 - 修改测试中的服务管理器配置。 -...
Zend Framework 有 ZF1 和 ZF2、ZF3 三个主要版本。ZF2 引入了更多的面向对象编程特性,如命名空间,ZF3 则进一步优化了组件和API,提升了性能,并引入了服务管理器等新特性。 **4. 数据库集成** 框架内置了多种...
3. Zend框架:Zend Framework是一款企业级的PHP框架,强调组件式设计,提供了一套强大的工具和服务,用于构建可扩展和高性能的Web应用。理解Zend框架的MVC(Model-View-Controller)模式,以及其服务、控制器、模型...
变量名同样遵循驼峰命名法,即第一个字符小写,其余单词首字母大写,以增强代码的可读性。 通过以上详尽的编码规范,可以显著提高 ZEND Framework 项目的代码质量和可维护性,从而帮助开发团队高效协作,共同推进...
在第一章,我们将介绍 Zend Framework 的设计理念,包括MVC(模型-视图-控制器)模式、依赖注入、面向对象编程等原则。此外,还会讨论 Zend Framework 如何与其他PHP库和框架集成,以及如何利用其强大的组件化设计来...
4. **ZF2 和 ZF3 版本**:Zend Framework 发展至今,经历了 ZF1、ZF2 和 ZF3 三个主要版本,每个版本都引入了新的特性和改进,如 ZF2 引入了命名空间和 PSR 标准,ZF3 更加强调组件的独立性。 5. **强大的数据库...
【标题】"基于Zend Framework 2的PHP电子商务系统"是一个使用PHP编程语言和 Zend Framework 2 框架开发的Web应用程序,专为电子商务场景设计。这个系统包含了完整的前后端功能,可以支持在线购物、订单处理、用户...