用 ThinkPHP 这样的框架开发门户网站,有什么缺点?
作者:ifx0448363 | 2021-09-08 09:36
相比自己纯源开发来说,用thinkphp肯定开发速度会快些但对于长期运行,以后可能会有很大访问量的门户网站来说,用thinkphp框架会有什么缺点吗,比如执行速度,负载等方面
相比自己纯源开发来说,用thinkphp肯定开发速度会快些但对于长期运行,以后可能会有很大访问量的门户网站来说,用thinkphp框架会有什么缺点吗,比如执行速度,负载等方面
回复内容:
就php框架本身来说
国内使用情况
thinkphp可以说是国产最热框架,各大公司都在用,更别提个人了.
我知道的金山,腾讯,dnspod都在用,我也在用.
原则就是团队对什么技术掌握的最多,就用什么技术,换成框架来说就是团队对某个框架最熟悉,那么就用这个最熟悉的框架
框架对比
php的框架五花八门,重型的zf,symfony2,流行的ci,yii,Larave
高性能版的C语言写的php扩展.国外Phalcon,国内鸟哥的 Yaf,也是微博使用的
这里未列出的还有好多好多.还有很多高手自己维护自己的"框架"
这些个框架国内都有人使用. 至于选什么框架,完全看自己技术团队的技术实力,以及评比结果那个更适合自己.
用php的网站来说
性能再差的php框架可以用系统构架来做。高并发的网站不是一台机器来抗.
多机php负载均衡.
先抗住再优化.
好多公司都几十上百台了php才来做大规模的调优,对非常消耗cpu的地方来重点优化,和重构,或者其他语言重构. 当然优化也是从编码 到上线 监控日志. 优化是长期不断的过程.也不紧紧是一次大规模重构.
抽离静态资源. 会话session,可以放在redis memcache中去.
数据库读写分离. 读多机群集.
上redis 等NoSql把热数据堆这里来.
启用cdn系统加快静态文件分发. 小规模三方,大规模自建.
用thinkphp一样可以高并发,就是看你怎么做构架了.
以上简单一说.
总之就是
系统瓶颈不在语言或框架上,而是在构架上.
好的构架不就是堆机器么.
看人了。还是应该先开发出来。开发时获取数据这一块注意不要跟数据库强耦合,不要不加处理直接使用以数据库的字段为key的数组。因为以后有量时十有八九要分表、加缓存、换 NoSQL 等等。
TP是一个很好的框架,我们已经有很多这样的成功产品,等你的网站流量很大的时候就不是框架以前哦去解决的问题了
php的速度瓶颈绝对不是在执行上面,不然他也不会成为一种不用编译,而是每访问一次编译一次的语言,php优点就是执行特别快,这个和框架无关,我觉得php的速度瓶颈在数据库,如何更加高效的存储和读取,以及分类数据,是更重要的。所以数据库的设计要好好研究一下,当然,还有上面说的,各种缓存技术,无论是转静态也好,还是服务员缓存技术也好,都是不错的方法!
这一块看构架。有一些问题需要优化,例如本地写的的问题。
例如,超大访问量对于nosql的考虑,队列的考虑,分库分表的考虑。
这是程序方面。
构架方面自己需要分情况去看
如何tp不能再用了,说明 你们的钱也有了。
TP的响应速度相比其他的要慢很多,开发速度上,比其他的上手快很多,看自己的项目了。不过TP是开源的,有些东西可以自己把控。
如果单纯从业务来看,门户网站的业务逻辑足够简单,TP可以完全胜任。如果说关于这个性能啥的,我还真的不认为TP会成为性能的牺牲者。哪有门户网站不做缓存的,都缓存了,框架性能就不是第一要素了。
而且,基本上也不可能单纯用PHP来完成一个门户,还有更多,比如sync,C扩展、数据库同步等等。
会有很大负载的网站,前台根本就不能用tp,任何框架都不可以。 框架带来开发便捷的同时,会有性能损耗。
建议使用开源CMS,部分模块二开。完全用TP来做,周期长,易用性低。架构做得好,执行速度和负载没问题。
推荐阅读
-
如何解决《CUICatalog:无效请求:请求子类型而不指定成语(它来自何处以及如何修复它?)》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《如何在没有服务器的情况下使用Django模板》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《CMAKE_BUILD_TYPE=发布是否意味着-DNDEBUG?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《如何在包装时使列表项在网格上排列?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《没有模块名称pyspark错误》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《如何在Hibernate中将日期保存为varchar?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《UILabel垂直对齐》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《PythonAnywhere:尝试使用easygui模块时出现Tkinter.py错误》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《vba,getElementsByClassName,HTMLSource的双引号都消失了》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《从objectId数组中删除ObjectId》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《Javascript循环索引问题》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《如何计算单个字母的出现次数》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《返回自己的自定义OrderedDict》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《将ISO639-1转换为ISO639-2》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《如何缓存读取?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《你能根据`Monads`来定义`Comonads`吗?》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《Apple推送通知无法在生产中使用》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《拖放(事件)不会触发ajaxPOST》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《使用OpenCV在棋盘中检测中国象棋棋子》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《如何访问ListBox中所选项的属性并将其粘贴到TextBox中》经验,为你挑选了1个好方法。 ...
[详细]
ifx0448363
这个屌丝很懒,什么也没留下!