`
netxdiy
  • 浏览: 686418 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

PHP框架的繁荣是正确的发展方向吗?

 
阅读更多

<script type="text/javascript"><!-- google_ad_client = "pub-0241434510974184"; /* 博客文章广告728x90, */ google_ad_slot = "7316585398"; google_ad_width = 728; google_ad_height = 90; // --></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>

http://www.javaeye.com/topic/319039?page=1

做ROR有一年了, 感觉非常好.配合敏捷实践(除了pair, 由于是和美国工程师远程合作.)开发速度的确快.一共三个人写代码,短短半年, 项目就基本结束了....

现在新项目即将到来, 客户在php和rails之间难以取舍. 我也打算趁此机会了解一下php.
由于项目定制性还是比较高,想通过成熟的CMS等系统来改改估计是没戏。
从头开发又觉得太慢。于是想从开源框架入手。

经过了解才发现, php新兴的一些框架基本上清一色的学习(或者叫抄袭,特别是cakePHP, 那简直抄得太厉害了.)rails。而且这些框架还发展的很好,越来越受到php社区的欢迎。 比如国外cakePHP,国内的Fleaphp, QeePHP等等,就不一一列举了.

昨天用cakePHP做了个简单的demo, 确实抄rails那是抄的相当直白。 甚至连rake都还有相应的东西代替。除了migration和filter我没找到对应的东西。让我一个不懂php的人,都还是可以很快地上手了.

一方面感叹php抄rails这种彻底,另一方面也感叹这些抄袭之作的确也带来了php开发效率的提升。虽然由于php本身的原因,框架的引入对性能的影响是比较大的。但是这些框架的出现大有重整php社区的意思。(至少客户就告诉我们,用rails不如用cakePHP,这样他们也不会引入更多风险。他们还介绍他们美国几个团队都又从rails转回cakePHP了.)

我就纳闷儿了,当时还觉得rails就是冲着php的市场去的。。。现在反而觉得rails的思想拯救了php...

大家觉得是应该继续说服客户呢? 还是就用山寨rails了呢?

PHP和Python/Ruby的运行机制有一个本质区别:PHP是每次HTTP请求过来以后,初始化全部资源(例如创建数据库链接、加载系统类库,创建缓存等等),处理完毕,释放全部资源,这不像Python/Ruby之类带有GC的脚本语言,Python/Ruby是初次启动的时候初始化资源,随后的请求就不必再次初始化资源了。

这种机制的差异带来的区别就是:

1、PHP极难出现严重的内存泄露问题,随便你代码写的多烂,反正每个请求一执行完毕,所有资源统统释放光。而Python/Ruby则需要依赖GC来回收内存,因此稍有不慎,还是会出现GC无法释放的内存泄露问题。

2、PHP每次请求都要初始化资源,这个开销非常大。所以尽管PHP解析器本身的运行速度是极快的,但是一旦使用复杂的PHP框架,那么由于需要每次请求的时候初始化整个框架,性能的下降非常厉害,你用一个很复杂的PHP框架的结果就是整体性能被Ruby远远甩开。这也是为什么PHP社区这么多年来,并不怎么倾向于使用框架的原因之一。

3、由于PHP这种每请求初始化资源的机制,也造成了PHP添加跨请求的高级特性相当困难,这是PHP本身一个很大的限制,但是反过来说,正是这种限制使得PHP始终保持在一个比较简单的web语言上面,而正是这一点才是PHP得以成为互联网第一Web编程语言的原因,因此也未必就不好。

总之,PHP和Ruby的差异还是很大的,不适合放在一起比较,其实应该比较的是Ruby和Python才对。

所以我觉得Rails这种框架性做法被PHP跟风以后,其实是把PHP带上了邪路,所以不如说是Rails在误导PHP的发展。顺便多说一句:DHH在编写basecamp之前,一直是用PHP的,并且自己还写了一个PHP的快速开发框架,他改用ruby以后,把当初自己写的PHP框架也移植过来了,这个框架实际上是Rails最初的原型。那么为什么DHH当初不直接基于PHP做Rails呢?非要改用ruby以后,才发表rails呢?你看看PHP这种运行机制就知道了,PHP做复杂的web开发框架并不是一条光明的道路。

分享到:
评论

相关推荐

    哪个php框架开发web网站会比较好?.doc

    哪个php框架开发web网站会比较好?.doc

    PHP系统开发框架QuickPHP.zip

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

    84PHP开源框架 v1.1.0

    4PHP是一套完全遵守APACHE开源协议的便捷PHP框架,独特的模块化设计,使得框架简洁易懂。一行代码即可完成在线支付、发送短信、分页等功能,前所未有的简单和高效!同时,84PHP还具有云服务功能,这也是国内首款与...

    php框架应用和发展.pdf

    php框架应用和发展.pdf 估计对某些php爱好者有用。有需要的朋友可下载看一下

    php最新框架YII框架

    据说是超越所有的PHP框架php最新框架YII框架php最新框架YII框架

    PHP框架技术的应用与发展

    PHP框架技术的应用与发展,个人觉得很有价值,分享了,大家顶起来,好的东西,提高与发展看自己了

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

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

    84PHP开源框架v2.2.1

    84PHP是一套完全遵守APACHE开源协议的便捷PHP框架,独特的模块化设计,使得框架简洁易懂。一行代码即可完成在线支付、发送短信、分页等功能,前所未有的简单和高效!同时,84PHP还具有云服务功能,这也是国内首款与...

    CodeIgniter(PHP MVC开源框架)v3.1.10.zip

    CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,它可以为 PHP 程序员建立功能完善的 Web 应用程序。如果你是一个使用共享主机,并且为客户所要求的期限而烦恼的开发人员,如果你...

    CodeIgniter开源框架php版v3.1.10

    CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,它可以为 PHP 程序员建立功能完善的 Web 应用程序。如果你是一个使用共享主机,并且为客户所要求的期限而烦恼的开发人员,如果你...

    PHP框架深度解析

    PHP框架深度解析 PHP框架深度解析 PHP框架深度解析

    PHP轻量级框架

    毕业设计用过的开发框架,十分轻量方便,非常推荐入门PHP的新手去学习。

    PHP微框架学习,PHP微框架,自己动手写的

    自己写的微框架,框架学习,PHP框架,需要的老铁们拿去

    php开发框架从零开始

    php开发框架从零开始 php开发框架从零开始php开发框架从零开始php开发框架从零开始

    PHP框架之CodeIgniter留言板实例

    PHP框架之CodeIgniter留言板实例PHP框架之CodeIgniter留言板实例PHP框架之CodeIgniter留言板实例PHP框架之CodeIgniter留言板实例PHP框架之CodeIgniter留言板实例PHP框架之CodeIgniter留言板实例PHP框架之CodeIgniter...

    PHP常用框架PHP常用框架

    PHP常用框架PHP常用框架PHP常用框架PHP常用框架PHP常用框架PHP常用框架PHP常用框架

    PHP mvc框架

    使用PHP开发自己的MVC框架 站点其实很简单,一个ToDo程序。

    canphp框架(php框架) v1.5

    CanPHP框架(简称CP),是一个简单、自由、实用、高效的php框架。CanPHP框架以面向应用为主,不纠结于OOP,不纠结于MVC,不纠结于设计模式,不拘一格,力求简单快速优质的完成项目开发,是中小型项目开发首选php框架。...

    easy-php, 更轻量级的完整堆栈PHP框架.zip

    easy-php, 更轻量级的完整堆栈PHP框架 更轻量级的完整堆栈PHP框架:如何构建一个PHP框架?为什么我们需要自己构建一个PHP框架? 也许大多数人都会说"我们提供了这么多PHP框架,但是我们仍然做了一个轮子"。 我的观点...

    php框架学习笔记.doc

    php框架学习笔记

Global site tag (gtag.js) - Google Analytics