论坛首页 编程语言技术论坛

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

浏览 246925 次
该帖已经被评为精华帖
作者 正文
   发表时间:2009-01-28   最后修改:2009-01-28
dualface 写道


前面有朋友说 PHP 的开发框架性能不好,我说这不代表所有 PHP 框架的性能都不好。但我也没有说 PHP 框架就一定比其他语言的框架更快。

然后还有朋友说 PHP 不适合实现 ORM,而我反对这种看法。这时,我提到了 memcached,意思是 PHP 框架不但可以 ORM,而且配合 memcached 还可以获得理想的性能。我并没有把 PHP 框架和 memcached 放到一起来说,显然只是你自己这么想的而已。

关于第3点,我也不认同你的意见。不过最好单独开贴来说,不然跑题太远。

你说的“前面有朋友”,已经够清楚了,只是说了PHP的开发框架,并没有说到memcached。
那位朋友已经说的很清楚了,PHP自身的开发框架没有办法很方便的做缓存、做连接池(这个我加的)、做ORM。
至于你认为实际项目中可以借助其他框架来弥补PHP开发框架的不足就是另一个话题了,本来别人就没说错。
你如果一定要讨论,应该这样对比:PHP开发框架+memcached和其他框架(或其他框架+memcached类似的缓存机制)比。


dualface 写道

我不知道你是否是对 PHP 有成见,即便我又提到 memcached,也用不着说什么“大可发挥”之类的话吧?

我对PHP没有偏见(对于PHP的优势,我有自己的理解),我以为你说的是反问,以为你要大谈PHP的ORM框架呢,不好意思。

dualface 写道

至于 memcached 缓存框架?没听过这种说法。不过我这里再次提到 memcached 是因为 PHP 本身对 memcached 有相应的扩展,用起来很方便。难道有现成的常用缓存服务不用,非要搞个不常用的?

不知道你说的这个“扩展”如何定义,memcached支持很多种语言,上面说了,既然要说到这个,做对比的时候必须要对等的横向对比。

dualface 写道

关于 memcached 的问题希望就此打住,因为实在是跑题太远了。我再强调一次“提到 memcached 是因为这个缓存服务可以为 PHP 的 ORM 带来性能提升”。但并不等于没了 memcached,PHP 的 ORM 就玩不转。

最后,PHP 的 ORM 性能和其他语言框架的 ORM 相比,性能是高是低,我没有测试数据,所以我不能下结论。但是反过来,既然你也没有测试数据,也请不要轻易下结论。

1.我没有说其他开发框架的ORM性能优越,我只是说很多开发框架不需要memcached就能开发出性能不低的ORM来,比如java中可选的缓存框架就有很多,外部的不谈,hibernate自己默认就支持EHCache、OSCache、或者自己写一个简易的等。

2.再次强调,别人说的是PHP开发框架,本来就没有说不属于PHP开发框架的memcached,是你先提到的。
 

0 请登录后投票
   发表时间:2009-01-29  
引用

你说的“前面有朋友”,已经够清楚了,只是说了PHP的开发框架,并没有说到memcached。
那位朋友已经说的很清楚了,PHP自身的开发框架没有办法很方便的做缓存、做连接池(这个我加的)、做ORM。


对于 PHP 框架做 ORM 的问题,我已经回复过了,这里不再重复。但是没有任何人说“PHP自身的开发框架没有办法很方便的做缓存”这样的话?不知道你从哪里看来的。除非你是把 PHP 运行环境自身没有内置 opcode cache 这样的问题当作“PHP自身的开发框架没有办法很方便的做缓存”了。

至于连接池,PHP 可以创建持久数据库连接,没有连接池也可以把创建数据库连接的成本降到最低。

引用

至于你认为实际项目中可以借助其他框架来弥补PHP开发框架的不足就是另一个话题了,本来别人就没说错。
你如果一定要讨论,应该这样对比:PHP开发框架+memcached和其他框架(或其他框架+memcached类似的缓存机制)比。


memcached 并不是 PHP 框架的一部分,PHP 框架也不需要依赖 memcached 才能工作。
如果你认为比较 PHP 框架和其他框架一定不能提 memcached,那算我不严谨,不该提 memcached。

但是这不等同于没有 memcached 的情况下,基于 PHP 框架开发的应用程序就一定比其他语言框架的慢,或者说慢到无法接受。

引用

我对PHP没有偏见(对于PHP的优势,我有自己的理解),我以为你说的是反问,以为你要大谈PHP的ORM框架呢,不好意思。


我不但要大谈,而且要特谈,不过我会在文档中详细阐述。文档写好后,我会发到 JE 的。

icewubin 写道
dualface 写道

至于 memcached 缓存框架?没听过这种说法。不过我这里再次提到 memcached 是因为 PHP 本身对 memcached 有相应的扩展,用起来很方便。难道有现成的常用缓存服务不用,非要搞个不常用的?

不知道你说的这个“扩展”如何定义,memcached支持很多种语言,上面说了,既然要说到这个,做对比的时候必须要对等的横向对比。


你既然连 PHP 的扩展都不知道,我很难相信你有多了解 PHP -_-#

icewubin 写道
dualface 写道

关于 memcached 的问题希望就此打住,因为实在是跑题太远了。我再强调一次“提到 memcached 是因为这个缓存服务可以为 PHP 的 ORM 带来性能提升”。但并不等于没了 memcached,PHP 的 ORM 就玩不转。

最后,PHP 的 ORM 性能和其他语言框架的 ORM 相比,性能是高是低,我没有测试数据,所以我不能下结论。但是反过来,既然你也没有测试数据,也请不要轻易下结论。

1.我没有说其他开发框架的ORM性能优越,我只是说很多开发框架不需要memcached就能开发出性能不低的ORM来,比如java中可选的缓存框架就有很多,外部的不谈,hibernate自己默认就支持EHCache、OSCache、或者自己写一个简易的等。

2.再次强调,别人说的是PHP开发框架,本来就没有说不属于PHP开发框架的memcached,是你先提到的。


呵呵,不知道什么时候 EHCache、OSCache 变成了 hibernate 这个 ORM 的一部分了。

---------------------

我觉得如果你想继续讨论下去,应该先补充一下相关领域的知识,否则只是浪费大家的时间。


0 请登录后投票
   发表时间:2009-01-29   最后修改:2009-01-29
dualface 写道

对于 PHP 框架做 ORM 的问题,我已经回复过了,这里不再重复。但是没有任何人说“PHP自身的开发框架没有办法很方便的做缓存”这样的话?不知道你从哪里看来的。除非你是把 PHP 运行环境自身没有内置 opcode cache 这样的问题当作“PHP自身的开发框架没有办法很方便的做缓存”了。

至于连接池,PHP 可以创建持久数据库连接,没有连接池也可以把创建数据库连接的成本降到最低。

既然可以,何必提到memcached,这又不是讨论基于PHP的最佳实践?

dualface 写道

至于连接池,PHP 可以创建持久数据库连接,没有连接池也可以把创建数据库连接的成本降到最低。

永久连接支持事务么?
如果一秒内300个不同用户访问了网站,是不是在短时间内新建并关闭300次持久连接?这种策略如何叫“把创建数据库连接的成本降到最低”?或者说你这个最低是指基于pure PHP方式下的效率?

dualface 写道

memcached 并不是 PHP 框架的一部分,PHP 框架也不需要依赖 memcached 才能工作。
如果你认为比较 PHP 框架和其他框架一定不能提 memcached,那算我不严谨,不该提 memcached。

但是这不等同于没有 memcached 的情况下,基于 PHP 框架开发的应用程序就一定比其他语言框架的慢,或者说慢到无法接受。

本来就没有人说“慢到无法接受”,PHP框架怎么会包含memcached,当然不能提。


dualface 写道

我不但要大谈,而且要特谈,不过我会在文档中详细阐述。文档写好后,我会发到 JE 的。

一定拜读。

dualface 写道

你既然连 PHP 的扩展都不知道,我很难相信你有多了解 PHP -_-#

我从未说过我有多了解PHP,为什么要你相信?

dualface 写道

呵呵,不知道什么时候 EHCache、OSCache 变成了 hibernate 这个 ORM 的一部分了。

呵呵,笔误被你抓住。EHCache、OSCache总算Java开发框架的一部分吧,比你硬扯上一个memcached,还绕了一大圈来说明你在讨论PHP框架的时候扯上memcached是合情合理的?

dualface 写道

我觉得如果你想继续讨论下去,应该先补充一下相关领域的知识,否则只是浪费大家的时间。

如果你在讨论PHP框架的时候不提什么memcached或者一开始就承认自己用词不严谨,那就是最节省大家的时间了。
0 请登录后投票
   发表时间:2009-01-29  
楼上两位,笔战就没必要了,希望多来一些学术性的探讨
0 请登录后投票
   发表时间:2009-01-29  
引用

如果你在讨论PHP框架的时候不提什么memcached或者一开始就承认自己用词不严谨,那就是最节省大家的时间了。


就算我用词不严谨好了,呵呵。
0 请登录后投票
   发表时间:2009-01-29  
引用

永久连接支持事务么?
如果一秒内300个不同用户访问了网站,是不是在短时间内新建并关闭300次持久连接?这种策略如何叫“把创建数据库连接的成本降到最低”?或者说你这个最低是指基于pure PHP方式下的效率?


持久连接和 PHP 进程有关。每个 PHP 进程(或线程)会建立一个数据库连接。只要进程不退出,这个连接就不关闭。该进程处理下一个请求时,会重用已经建立好的连接。

你的理解完全是错误的。既然你都不懂 PHP,何必装懂。
0 请登录后投票
   发表时间:2009-01-29  
dualface 写道
引用

永久连接支持事务么?
如果一秒内300个不同用户访问了网站,是不是在短时间内新建并关闭300次持久连接?这种策略如何叫“把创建数据库连接的成本降到最低”?或者说你这个最低是指基于pure PHP方式下的效率?


持久连接和 PHP 进程有关。每个 PHP 进程(或线程)会建立一个数据库连接。只要进程不退出,这个连接就不关闭。该进程处理下一个请求时,会重用已经建立好的连接。

你的理解完全是错误的。既然你都不懂 PHP,何必装懂。



问一下,一个PHP进程可以处理多个请求么(多个请求不在同一个TCP连接内)? 如果可以,那我觉得PHP的运行方式和Ruby/Python比起来应该是没有什么本质上不同。
(另:我是PHP盲,只是听过名字而已...)
0 请登录后投票
   发表时间:2009-01-29   最后修改:2009-01-29
dualface 写道
引用

永久连接支持事务么?
如果一秒内300个不同用户访问了网站,是不是在短时间内新建并关闭300次持久连接?这种策略如何叫“把创建数据库连接的成本降到最低”?或者说你这个最低是指基于pure PHP方式下的效率?


持久连接和 PHP 进程有关。每个 PHP 进程(或线程)会建立一个数据库连接。只要进程不退出,这个连接就不关闭。该进程处理下一个请求时,会重用已经建立好的连接。

你的理解完全是错误的。既然你都不懂 PHP,何必装懂。

我何必要装懂,我有说懂PHP么,我何必要装呢?你在讨论的时候为什么经常会带一句人身攻击?素质也太差了吧。

我的例子特地说明了300个不同用户访问网站,不知道你看清楚了没有。如果照你的逻辑,是我不懂(我是不懂),我是不是可以理解为一个山东的网友和一个陕西的网友访问同一个PHP网站,有概率共享到一个数据库连接(此连接未曾关闭过)么?

如果有概率的话,那不就是连接池的概念了么?如果这种概率是0的话,请想清楚再回答。
0 请登录后投票
   发表时间:2009-01-29  
我似乎看到了一种观点:java不适合,或者不如ruby更适合做互联网开发。。。
那么我想请教一下,这个互联网开发指的是什么?
如果不适合的话,那么java这10几年来都做了什么?难道一直在做桌面开发?

诚心求教!
0 请登录后投票
   发表时间:2009-01-29  
poshboytl 写道
koalant 写道
drupal, mambo,joomala,typo  这些究竟哪个好啊?

我们客户开始希望用drupal, 但是发现不能完全满足他们的需求...于是决定不用CMS改了.

据我所知似乎 drupal在国外口碑不错. joomla也很有实力...

php优秀的开源项目的确多 , 有空可以学习学习.

这些优秀的项目都比较好,只不过,php做大一点的项目会比较吃力
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics