`
bardo
  • 浏览: 378337 次
  • 性别: 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(集成开发环...
浏览量:9504
社区版块
存档分类
最新评论

如何寻找一个不会让你后悔的PHP开发框架

    博客分类:
  • PHP
阅读更多

        目前,有人使用的PHP框架有400多。很多开发了发布的PHP框架可以说是近乎上千个之多。在选择PHP开发框架时,很多人都会陷入迷茫,或因此走很多弯路。
        因此,我们这里简单讲一下,如何寻找一个不会让你后悔的PHP开发框架。
        首先要明确,先择框架,绝不是为了学习,也不是为了做一个企业网站或小型个人网站。面临选择问题的根本点在于,你这个网站是大型网站,或将来会成为大型网站。你不能因为框架而阻碍你的发展。
        那么,我们先讲一下,目前选择框架的种种误区:
        1、选择流行的。并非流行的就是非常好的。举例来说,CI相当流行。但CI只能用于小型网站开发,并且,可扩展性相当差,它的最大的优点是初学者易上手。但不能很好地运用PHP5面向对象的特性。
        2、选择官方的。无非就是用Zend,但它并不是最具扩展性的代码,或者,它的一切也只有在ZEND SERVER中才能充分体现。可ZEND SERVER是要收费的。另一坏处,那就是,它的更新速度并不是很快。一个很复杂的代码,相对于一个网站的发展,无法等待官方的更新,需要时,你需要自己去修改的。所以,以官方更新有保障,这是靠不住的理论。
        3、选择简单的。目前国产的,声称极简单的框架也不下于上百种。但这些简单的框架,实际最终会浪费你很多的时间。为什么呢?比如,无日志,出错后,不知错在何处。无TRACE,跟踪调试不方便。
        那么,我们选择框架有什么样的标准昵?
        1、完全面向对象。这可不是说着玩玩的。我们要明确,面向对象的目的是什么?面向对象根本目的是在于:
        可以扩展,松耦合。
        如何可以扩展?相当简单,你不用多看代码,只要用搜索工具统计一下以下的字串:
        final 这表示是最终类,或最终方法,是对继承的保护。比如,单件模式中,肯定有 fincal function __clone,以保护其永远都是单件的。
        abstract 抽象类,抽象类中就有抽象函数。这表明开发人能够面向抽象编程,用抽象函数,给你留下了可扩展的接口。
        interface 当一个抽象类中完全是由抽象函数组成,并且,这些抽象函数均是必须实现的,那就会定义 interface。如果没有,那你就没有可扩展的可能。
        private protected 这是访问控制。如果有这些,则表明,代码封装有相当可靠的安全性。不会让用户访问不可访问的方法或属性。
        2、代码质量。
        除了按一般编程规范以外,代码应当是软编码。所谓软编码,即是指动态扩展是相当方便的。对于此,最简单的方法,是搜索一下case. 因为, switch case 结构是硬编码。如果你增扩一项,你必须到switch中增加一个case.破坏了原有核心代码的封装。
        函数长度。一个函数最长不允许超过140行。否则,可维护性极差。比如,zend date中有一函数即是有大量switch case,并且,一个函数超过了1000行。这样的代码,谁看了都晕。
        3、必须的功能。
        用框架,就是使用的框架提供的现成的功能,如果一些基本功能都没有实现,那不如不用。而这些必须的功能,基本有以下一些;
        autoload 自动加载,有它,会让你的代码写得更少。因为,省下了很多的 include, require
        cache 必须是多种cache支持的,以适用于你当前所用的主机空间或服务器
        config配置文件读取与管理,这是必不可少的,有配置,会省下大量代码。
        MVC,即模型,视图与控制器。其中控制器的实现最为重要,效率,易用性,可扩展性。假如使用get_broswer函数获取UA的,最好不用。因为get_broswer函数实在是效率太差。
        ErrorHandle ExceptionHandle 错误与异常管理,没有这个,程序出错不会受到管理,你无法了解,哪里因为什么样的原因错了。
        Logger日志,错误要写日志,性能监控也要写日志,我们不要求代码中有多少性能监控,但出错至少要有详细的日志写出来。同时,日志因当有多少输出,文件,邮件,控制台,页面,这样的话,当你网站成为大型网站时,添加一个日志短信输出,就很方便。并且,日志要有过滤,哪些日志如何输出,有这样好的定义,使用就相当方便。
        validator filter 验证与过滤,用户输入,必须要验证,否则,SQL 注入,网站安全不可保证。过滤器,这是必须的,总不能把用户录入的脏字再显示到页面上吧。
        session 这是必须的,多种session支持也是必须的。 因为, 多台服务器共享session,那就不再是phpSession
        数据库,大网站肯定是必须的,是否能支持多库,是否有分库管理与对应的算法访问机制。
        必须的常用类库,日期时间,上传下载,文件管理,
        非必须的常用类库,如图象处理,邮件,当然,这些是有优秀的第三方的。所以,不是必须。但如果有,则只能说明,框架开发者开发得相当用户。并且,他提供的肯定有独特之处。
        最后则是,有没有模板引擎,或者有没有部件支持,因为,VIEW中有了这些,会大大加快开发速度,并且,这也是MVC基本的必须组件。
        到这里,大家不妨看一下,所谓20KB的框架,是否有用?是否能用?
        当然,这些代码会有多大?实际也不是越大越好,zend的50MB肯定有问题。但如果不足5M,那肯定一样也有问题。太简陋的代码,不是需求考虑不全,就是代码不够强壮。
        不过,按这样的要求,我到现在没有找到一个合适的。如果你找到了,请告诉我。
   

2
0
分享到:
评论
5 楼 bardo 2011-01-14  
rtxbc 写道
北京的大公司,都用自己的框架

这是必然的,因为,开源中找不到,只能自己做了。我们也一样。
4 楼 rtxbc 2011-01-14  
比如phpcms,是盛大开发的,
我看过他们的代码,里面的框架也是他们自己开发的。

有很多地方可以拿过来模仿。自制一下,最基本的就是mvc分离。
3 楼 rtxbc 2011-01-14  
北京的大公司,都用自己的框架
2 楼 bardo 2011-01-13  
lj3362569 写道
yii 呵呵 你要的都有

YII不是使用的ADODB吗?没有方便的ORM,是否支持多数据库分库操作?不够理想吧?你是在做广告?
1 楼 lj3362569 2011-01-13  
yii 呵呵 你要的都有

相关推荐

    PHP 教程 一个高性能的PHP框架 php快速开发框架 免费开源的轻量级、高性能PHP框架

    本教程重点介绍的是一款【免费开源】的PHP框架,旨在帮助开发者进行【快速开发】。开源意味着源代码对公众开放,任何人都可以查看、使用、修改和分发。这种开放性不仅降低了开发成本,也为社区带来了持续的改进和...

    一个简单的PHP开发框架

    总结来说,"一个简单的PHP开发框架"意味着这个框架旨在降低PHP开发的门槛,提供基本的MVC结构和必备功能,让开发者能够快速上手,搭建自己的Web应用。通过学习和使用这样的框架,开发者可以提升开发效率,同时掌握...

    php快速轻量级开发框架

    PHP快速轻量级开发框架是Web开发中的一种高效解决方案,旨在简化编程过程,提高开发效率,同时保持代码的可读性和可维护性。这类框架通常具有较小的体积,但功能强大,适合中小型项目或者需要快速原型开发的场景。在...

    快速开发后台框架

    总结来说,"快速开发后台框架"是一个为了提高开发效率而设计的工具,它通过自动生成HTML和提供基础的控制器及表单处理类,让开发者能够更专注于业务逻辑,而不是基础架构的搭建。这样的框架对于快速构建后台管理系统...

    PHP敏捷开发框架 CodeIgniter

    PHP敏捷开发框架-CodeIgniter,快速web应用开发详解

    基于ThinkPHP的轻量级PHP开发框架设计源码

    本设计源码提供了一个基于ThinkPHP的轻量级PHP开发框架。项目包含25个文件,主要使用PHP编程语言。文件类型包括10个PHP源代码文件、5个GIT忽略文件、2个Markdown文档、2个TXT文档、2个.htaccess文件、1个YAML配置...

    PHP微信开发框架

    PHP微信开发框架,高效开发微信公众号应用。简洁而又轻量

    PHP开发框架底层【试用于任何系统的PHP+mysql+smarty+oop开发】

    PHP开发框架底层 该结构包含了 smarty mysql page 类,属于一个系统开发底层。 包含了后台管理,可实现无限级别控制,已经包含登录退出管理页面 数据库可以实现新闻无限分类扩展,系统配置无限增加字段扩展 试...

    84PHP开源框架 v1.1.0

    84PHP是一个开发框架,而不是一门语言,更不是一个教程。它能够让开发者在短时间内便捷地开发出稳定、安全、高效的应用,但这一切的前提是您必须对PHP有所了解。我们认为84PHP的开发者【必须】具备的编程水平是: 1....

    CodeIgniter:php敏捷开发框架web快速开发详解

    如果你只是要达成一个最终的结果,而把中间所有的编码细节和复杂统统丢给一个框架,CI 是你最好的朋友。 CI 有很多优点:免费,轻量级,容易安装,它能使你的编程生涯变得很轻松。 这一章我们会告诉你: CI 能为你...

    PHP开发框架源代码汇总

    教程名称:PHP开发框架源代码汇总课程目录:【】CodeIgniter 2.1.2【】Difeye 1.1.2【】EaglePHP 2.0【】JHPHP快速开发框架 2.0 beta【】kohana 3.2.0【】MyQEE(麦琪) 2.0.1【】PHPDevShell 3.1.3【】Smarty 3.1.12...

    CodeIgniter:php敏捷开发框架(中文)

    1、CodeIgniter:php敏捷开发框架 2、CodeIgniter 1.7.1 用户指南 本书详细讲解了 CI 的一些主要特性。本书并不包含 CI 的所有内容和全部细节。CI 有一本出色的在线《用户指南》,它详细讲解了大多数的内容。它可以...

    轻量级可扩展的PHP开发框架(erPhp)

    erPhp框架是一个轻量级的微型的PHP开发框架,其支持多语言,权限控制,功能模块化,多数据库连接,及页面缓存和编译缓存,其模板引擎是使用流行的smarty做为模板引擎,前端JS比较自由默认使用jquery,支持多种session存储...

    PHP开发框架的研究与设计.pptx

    PHP开发框架的研究与设计 摘要:本文讨论了PHP开发框架的研究与设计,旨在探讨优秀的PHP开发框架应具备的特点和优化方法。通过文献综述、案例分析、问卷调查和访谈,我们研究了PHP开发框架的历史发展、分类、特点和...

    PHP开发框架的研究与实现.pdf

    不过,我可以根据标题和描述中提到的“PHP开发框架的研究与实现”这个主题,提供一些与之相关的重要知识点。 首先,“PHP开发框架”是指为PHP语言开发的一系列预定义代码、库、工具集和规范,旨在帮助开发者快速...

    轻量级 PHP 接口开发框架 LyAPI

    LyAPI是一款轻量级的PHP开源框架,它可以让接口开发变得简单: 功能完备:LyAPI内置了一些常用的功能,同时还在不断的开发拓展库。 开发简单:一个API就是一个函数,你只需要将数据返回,框架会自动将数据进行转换并...

    PHP系统开发框架QuickPHP.zip

    QuickPHP 是新一代极速,强大,全面的PHP系统开发框架,它结合业界各著名框架的优点,以具体项目经验为基础开发而成,适合各种层次的系统及各种水平的开发者应用。为什么要使用QuickPHP?一:您想要一款性能极高但...

    PHP开发框架的研究与实现.docx

    一、PHP开发框架概述 PHP开发框架是指基于PHP语言的Web应用开发框架,旨在提高Web应用开发效率和代码质量。常见的PHP开发框架包括Laravel、Symfony、CodeIgniter等,每个框架都有自己的特点和适用场景。 二、PHP...

    一个基于ThinkPHP51和AmazeUI的快速后台开发框架

    标题中的“一个基于ThinkPHP51和AmazeUI的快速后台开发框架”指的是一个使用了ThinkPHP5.1框架和AmazeUI库构建的后台管理系统的项目。这个框架旨在简化和加速后台应用的开发过程,提供高效且用户友好的管理界面。 ...

    phpWeChat微信公众号开发框架

    6、phpWeChat也是一个PC(网站)开发框架和CMS 慢慢您会发现,phpWeChat是一个更接近CMS功能的框架。 7、高度封装常用开发功能 只需一两行固定的代码,您便可以写出列表分页、微信支付、文件上传、邮件发送、短信...

Global site tag (gtag.js) - Google Analytics