`
bardo
  • 浏览: 378331 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
D1407912-ab64-3e76-ae37-b31aa4afa398
浅述PHP设计模式
浏览量:11807
9d6df9f7-91da-3787-a37c-0e826525dd5d
Zend Framewor...
浏览量:10116
85b628bd-a2ed-3de2-a4b1-0d34985ae8b6
PHP的IDE(集成开发环...
浏览量:9502
社区版块
存档分类
最新评论

Zend Framework的缺陷(连载之6)

    博客分类:
  • PHP
阅读更多
       Zend Framework足足有40M的代码,以试图满足不同层次的需要。从这一点来看,可谓用心良苦。
        然而,十分有趣的是,虽然有此心,但一些基本的功能却不能满足用户的基本需求。
        读者也许不信。所以,我们不妨再举一个实例。同时,也讲解一下Zend Framework在这一方面的缺陷。
        一个最为基本的功能,那就是提供MVC模式的控制器。当然,你可能马上就会反驳,Zend Framework的控制器是做得最好的。这一点不可否认,在众多的MVC框架中,Zend Framework的控制器确实要比其它框架的要胜出一筹。比如,它能支持不同的路由方式:正则表达式路由,静态路由,模块路由,主机名路由,还有路由链。同时,分发器在分发时开启LOOP,确实状态结束后才退出。
        但是,所有这些,并不代表它没有缺陷,如果你真的使用了,你就会发现,却有很多问题,有些问题,却是常识性的。
        第一个常识性的问题,那就是,它没有User Agent判断。当然,这首先是PHP的问题。PHP提供的get_browser,几乎是一个不可用的函数。为什么这么说:因为,此函数需要一个很大的php_browscap.ini支持,因此,此函数运行速度极慢。同时,虚拟主机上无法使用,必须得用PHP代码下载。最根本的,就是用了此函数,你能得到的有用的参数不多。或者说,远远不够。为什么?因为,现在我们所面临的最大的问题:判断是手机还是PC访问,它做不到。因此, Zend Framework中并没有处理这一问题。这一点已充分说明,Zend Framework不能把握市场需求,闭门造车。相比之下,CodeIgniter却提供了UserAgent类。这不能不说,他们的市场眼光是很强的。或者,原本CodeIgniter就一直在为用户开发,也有这样的可能。
        第二、控制器虽完成了大量的代码,但一些代码,未给用户以可配置的接口和用状态方式返回给用户。为什么要强调这一点,因为,如果有此设计思想,那么一些代码就不需要用户现去编写。并且这些代码,对用户而言是相当重要的。这些代码有,确认是本站点的HOST,这样,就不会有非法域名指向。确认URL已经过过滤,这样,就容易免除XSS攻击。Zend Framework不但没有相关的实现代码,同时也没有相关的状态提示。所以,我们现在可以看到,很多大公司用Zend Framework构建的网站,当你故意键入一个不存在的页面,则会转到服务器的默认404页面。这种现象实在是让人感到可悲。
        第三,因为控制器的复杂性,所以设计模式也相当复杂。Zend Framework可谓是面向对象的典范。Zend Framework控制器中使用的策略模式,同时提供了插件方式,向用户完全开放对其扩展。从这一点而言,是相当不错的。但是,如此复杂的结构,代码中包含大量的注解,却没有足够的文档给予说明,实是一大悲哀。
        文档是否需要?这有两方面的问题。面向对象,原本就是只让用户关心如何使用,不必关心实现,黑箱操作。然而,要真正弄懂Zend Framework控制器,不看源码是不行的。这可以说是一大失败。据说,Zend Framework开发团队聚集了全世界一流的PHP开发专家,但却没有做到“让用户关心如何使用,不必关心实现”。GOOGLE一下,网上有多少讲解Zend Framework控制器原理的,有多少人不得不研究源码的,就可以设想,Zend Framework控制器竟究是成功还是失败了。无法想象,是团队不重视,还是团队脱离用户,具体原因就不再深究了!按照Zend Framework开发团队聚集了全世界一流的PHP开发专家这一说法,理应开发出更好的控制器!可惜,没有!
        很多人不用Zend Framework,其一大理由,就是培训成本,当我们耗费时间,耗费精力,把Zend Framework控制器弄懂弄通以后,我们却发现,它并不能完全满足我们的需求。这还算了,对于一些技术力量相对不强的公司,他们可是对Zend Framework抱着绝对的信任。最后的结果,却是让他们失望。反过来,如果我们有这样的时间,我们自己来写我们自己的控制器,这可是一劳永逸的事情。
4
3
分享到:
评论
1 楼 nm052001 2010-09-16  
的确。。我目前也在此困境中。。公司的人员不多。要学习Zend Framework需要成本。

但这里我不明白。学懂了ZF后还有失望的?达不到自己的需求。

这么一个大的框架。扩展性这么强。怎么会出现不能完全满足我们的需求??

我昨天才开刚学习ZF 的确网上的教程过时的占了大份分。

相关推荐

    ZendFramework-1.10.4-minimal

    6. **配置和依赖注入**:Zend_Config 提供了灵活的配置管理,而 Zend_Loader_Autoloader 实现了自动加载类,减少了手动引入类文件的需求。 7. **性能优化**:Zend_Cache 提供了多种缓存策略,以提升应用程序的响应...

    zend framework中英文手册.rar

    **Zend Framework 中英文手册** **一、Zend Framework 简介** Zend Framework 是一个开源的、基于组件的 PHP 框架,旨在提供高效的开发环境,以构建高质量的Web应用程序。它遵循MVC(Model-View-Controller)设计...

    ZEND FRAMEWORK 1.11.7 中文参考文档

    Table of Contents •Introduction to Zend Framework •Overview •Installation •Learning Zend Framework •Zend Framework Quick Start •Autoloading in Zend Framework •Plugins in Zend Framework •...

    Zend Framework 2 Application Development

    Whether you are learning Zend framework from scratch or looking to sharpen up your skills from previous versions, Zend Framework 2 Application Development will help you to harness the power of Zend ...

    zend framework 中文手册

    6. **学习与实践**: 学习 Zend Framework 需要掌握PHP基础知识,了解MVC架构,并熟悉框架中的各个组件及其用法。通过实际项目练习,可以更好地理解和运用框架,提升开发效率。 7. **社区支持**: Zend Framework 有...

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

    Zend Framework推崇“选择性使用”原则,开发者可以根据项目需求选择使用其中的部分或全部组件,极大地提高了开发效率和代码质量。 **二、CMS系统的核心功能** CMS系统通常包含以下核心功能: 1. **内容创建与...

    Zend Framework 2 官方教程汉化版

    Zend Framework 2 官方教程汉化版

    ZendFramework 1.12.9 代码和文档.rar

    **Zend Framework 1.12.9:框架详解与应用** **一、Zend Framework简介** Zend Framework(简称ZF)是一款开源、基于PHP语言的企业级Web应用程序开发框架。它遵循MVC(Model-View-Controller)设计模式,为开发者...

    Zend Framework+smarty用法实例详解

    6. 初始化Zend Framework前端控制器:在index.php中创建一个前端控制器实例,设置控制器目录,启用异常抛出,并设置应用程序的基础URL。 7. 集成Smarty模板引擎:在index.php中配置Zend Framework的前端控制器,...

    Zend Framework教程之Zend_Layout布局助手详解

    Zend Framework教程之Zend_Layout布局助手详解重点介绍了Zend Framework中Zend_Layout组件的使用方法。Zend_Layout是一个用于管理布局的组件,它允许开发者定义应用程序的布局结构,使得可以在不同的页面中复用相同...

    Zend Framework 中文 手册 入门教程

    Zend Framework 中文 手册 2008年12月01日.chm MD5: DD29C39D12E9C0B38FD3475A12D05B73 SHA1: 1A6BBBF9311013F2FF2BF97752332160ED767526 CRC32: 88210ABD Zend Framework 入门教程(简体中文1.52版)v0.12.pdf MD5:...

    Zend Framework实例教程

    ### Zend Framework实例教程知识点解析 #### 一、简介与安装要求 **Zend Framework**是一款开源的PHP框架,设计用于帮助开发者构建稳定、高效且可扩展的Web应用。本教程聚焦于介绍Zend Framework的核心特性和如何...

    PHP zend framework 教程 很好

    PHP zend framework 教程 很好PHP zend framework 教程 很好PHP zend framework 教程 很好PHP zend framework 教程 很好PHP zend framework 教程 很好PHP zend framework 教程 很好PHP zend framework 教程 很好...

    zend framework 1.7.5 使用基本例子

    在本教程中,我们将探讨如何使用Zend Studio 6这一强大的集成开发环境(IDE)来开发基于Zend Framework 1.7.5的应用。 首先,让我们了解如何安装和设置Zend Framework。在开始任何项目之前,你需要下载并解压Zend ...

    ZendFramework中文手册HTML版

    Zend Framework 遵循 Model-View-Controller (MVC) 设计模式,它将应用程序的业务逻辑、数据和用户界面分离开来,使得代码更易于维护和扩展。在 MVC 架构中,Model 负责处理业务逻辑,View 负责展示数据,而 ...

    ZendFramework最新版本

    这个“最新版本”指的是 Zend Framework 的 1.11.10 版本,它包含了 MVC(Model-View-Controller)架构模式,这是 Web 开发中常用的设计模式,用于分离应用程序的不同部分,提升代码的可读性和可维护性。 1. **MVC ...

    zend framework教程.zip

    Zend Framework 是一个基于组件的 PHP 开发框架,由 Zend Technologies 公司创建并维护,被PHP官网推荐为MVC(Model-View-Controller)框架之一,尤其适合构建企业级的Web应用。本教程将深入讲解 Zend Framework 的...

    zend framework 中文版手册(最新)

    6. **RESTful Web Services(Zend_Rest)**:手册将讲解如何使用 Zend Framework 创建 RESTful API,实现HTTP方法(GET、POST、PUT、DELETE等)的处理。 7. **视图助手(View Helpers)**:这些辅助类用于在视图层...

    Zend Framework 3 Developer's Guide azw3

    Zend Framework 3 Developer's Guide 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书

Global site tag (gtag.js) - Google Analytics