`
lovefly_zero
  • 浏览: 389956 次
  • 性别: Icon_minigender_1
  • 来自: 株洲
社区版块
存档分类
最新评论

走进Zend Framework框架编程(三):运行第一个程序

    博客分类:
  • PHP
阅读更多
框架主要是为了提高开发效率和支持多人团队开发而发明的。传统的平面式开发总是让每个软件项目从零开始,程序员不得不重复“制造轮子”的工作;而界面(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个文件的代码进行详细解释。
    张庆(网眼)文章出处phpchina
分享到:
评论

相关推荐

    基于Zend Framework 框架的CMS PHP 源代码

    **基于Zend Framework框架的CMS PHP源代码详解** 在IT领域,内容管理系统(CMS)是用于构建和管理网站的软件工具,而PHP作为一种流行的服务器端脚本语言,常被用于开发Web应用,包括CMS。本资源提供了基于Zend ...

    zendframework3.0框架

    Zend Framework 3.0(简称ZF3)是一个基于PHP编程语言的开源Web应用程序框架,它遵循模型-视图-控制器(MVC)架构模式,并提供了丰富的工具和组件来帮助开发者构建高质量的Web应用。这个框架的核心理念是模块化、可...

    Zend框架入门教程

    - 运行Zend Framework需要以下条件: - PHP 5.1.4 或更高版本 - Web服务器需支持mod_rewrite功能,本教程推荐使用Apache作为服务器。 #### 七、安装与配置 - 可以从官方网站`...

    Zend_Framework_ZH中文手册

    - Zend Framework鼓励模块化开发,允许开发者创建自己的模块或使用社区开发的第三方模块。 **8. 性能优化** - ZF提供了各种策略和最佳实践,以提高应用程序的性能,包括缓存、优化的数据库查询和减少HTTP请求数量...

    Zend Framework 1.8中文版参考手册.pdf

    1. **入门指南**:介绍如何安装Zend Framework,设置开发环境,以及创建第一个项目。 2. **组件详解**:详细阐述每个组件的功能、用法和示例,如控制器、视图助手、模型、数据库访问等。 3. **最佳实践**:提供了...

    zend完整框架Demo

    9. **服务容器**:`Zend\ServiceManager`是Zend Framework 2及更高版本中的一个重要组件,但也可以通过第三方库在旧版本中使用。它允许你定义服务并按需注入,提高了代码的可测试性和灵活性。 10. **组件化**:Zend...

    zendframework留言分页

    - Zend Framework是一个MVC(模型-视图-控制器)架构的PHP框架,它遵循面向对象编程原则,提供了一系列独立且可重用的组件,如路由、控制器、视图助手等。 - 在本项目中,`index.php`是入口文件,负责初始化Zend ...

    zend framework初级教程源代码

    作为一个初学者,您已经迈出了探索这个强大PHP框架的第一步。Zend Framework 是一个基于组件、采用模块化结构的开源PHP框架,它为开发者提供了构建高性能、可扩展的Web应用的强大工具。 在本教程中,您将了解到 ...

    最新zend framework 文档

    1. **安装与设置**:如何在你的开发环境中安装Zend Framework,包括配置PHP环境、设置自动加载器和创建第一个项目。 2. **MVC结构**:解释模型、视图和控制器各自的职责,以及如何组织代码以遵循这种架构。 3. **...

    (zf2)zend framework 2官方文档pdf

    ##### 14.3 第一个控制器测试 - 创建测试类。 - 编写测试用例。 ##### 14.4 失败的测试用例 - 通过编写失败的测试用例来验证测试的有效性。 ##### 14.5 配置测试的服务管理器 - 修改测试中的服务管理器配置。 -...

    Zend Framework 手册中文CHM版--11月4日更新

    Zend Framework 有 ZF1 和 ZF2、ZF3 三个主要版本。ZF2 引入了更多的面向对象编程特性,如命名空间,ZF3 则进一步优化了组件和API,提升了性能,并引入了服务管理器等新特性。 **4. 数据库集成** 框架内置了多种...

    大道PHP:LAMP+Zend+开源框架整合开发与实战(随书光盘源码2).rar

    3. Zend框架:Zend Framework是一款企业级的PHP框架,强调组件式设计,提供了一套强大的工具和服务,用于构建可扩展和高性能的Web应用。理解Zend框架的MVC(Model-View-Controller)模式,以及其服务、控制器、模型...

    zend framework编码规范

    变量名同样遵循驼峰命名法,即第一个字符小写,其余单词首字母大写,以增强代码的可读性。 通过以上详尽的编码规范,可以显著提高 ZEND Framework 项目的代码质量和可维护性,从而帮助开发团队高效协作,共同推进...

    zend+framework技术大全前十章

    在第一章,我们将介绍 Zend Framework 的设计理念,包括MVC(模型-视图-控制器)模式、依赖注入、面向对象编程等原则。此外,还会讨论 Zend Framework 如何与其他PHP库和框架集成,以及如何利用其强大的组件化设计来...

    zend 中文手册 php高手 phper

    4. **ZF2 和 ZF3 版本**:Zend Framework 发展至今,经历了 ZF1、ZF2 和 ZF3 三个主要版本,每个版本都引入了新的特性和改进,如 ZF2 引入了命名空间和 PSR 标准,ZF3 更加强调组件的独立性。 5. **强大的数据库...

    基于ZendFramework2的PHP电子商务系统.zip

    【标题】"基于Zend Framework 2的PHP电子商务系统"是一个使用PHP编程语言和 Zend Framework 2 框架开发的Web应用程序,专为电子商务场景设计。这个系统包含了完整的前后端功能,可以支持在线购物、订单处理、用户...

Global site tag (gtag.js) - Google Analytics