加入收藏 | 设为首页 | 会员中心 | 我要投稿 草根网_ASP源码网 (https://www.1asp.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

PHP高性能框架选择

发布时间:2022-10-19 12:55:50 所属栏目:教程 来源:
导读:  在不用缓存、集群之类东东只情况下,PHP框架哪家强?我指的是高并发高负载,并且适合做大型项目的。

  高负载不是一个语言的问题,这个讨论的范围已经超出了PHP:

  1、如果同一类型的的框架(指都是
  在不用缓存、集群之类东东只情况下,PHP框架哪家强?我指的是高并发高负载,并且适合做大型项目的。
 
  高负载不是一个语言的问题,这个讨论的范围已经超出了PHP:
 
  1、如果同一类型的的框架(指都是为了解决某类问题,比如CMS,论坛等乖)是比较成熟的,那么在生产环境,大家的差异不会差不那里去;
 
  2、框架的最主要目的不是为了解决“负载”的问题,而是加速开发。
 
  3、负载的问题,最直接的可以由硬件来完成,比如一个相对比较烂的程序,只有要足够的资源,也可以比一个资源不足的程序跑得好;一个程序,先是考虑能否完成业务,再考虑其它的问题,会比较好一点;
 
  4、框架本身也不一定就决定了负载,也决定于使用的人,比如框架提供的缓存是否被正确的使用,框架提供的优化配置是否被合理的使用等等。
 
  ……
 
  说了这么多,其实想说:哪个框架熟悉就用哪个,真的等到负载出问题了,找你的老板,相信他会有更好的解决方案。(负载出问题了,一定是到了要数钱的阶段了)
 
  决定能否高并发高负载的是你的业务类型和代码质量,和框架没有太多关系。
 
  大多数情况下业务的性能消耗是远大于框架本身的消耗,除非你的业务只是简单的CURD
 
  性能好,简单(c扩展的,PHP代码进行的都是间接的C调用,就像PHP的库函数一样.):
 
  yaf 、Phalcon或者yii、laravel等国外庞大框架 基本上高性能并且轻量级软件都C有关例如nginx和python等
 
  PHP缓存技术:Memcache技术、OPcache技术、accurlater技术和Varnish技术
 
  Mysql和文件缓存技术:Redis和Nosql
 
  要高并发,yaf实在是不合适。yar还稍微说的过去。 个人的建议是:swoole + apache thrift 或者推荐Phalcon 或者Swoole+Lumen 基于Swoole加速Lumen,开发效率和性能二者兼得。其他国内php内容管理系统都是渣渣。 Requirements DependencyRequirement
 
  PHP
 
  >= 5.5.9Recommend PHP7+
 
  Swoole
 
  >= 1.7.19 No longer support PHP5 since 2.0.12 Recommend 4.2.3+
 
  Laravel/Lumen
 
  >= 5.1 Recommend 5.6+
 
  Yaf的其实本质上讲,是个基础框架,仅提供了一个简单粗暴的基础URI路由功能,完事了。
 
  最关键是并发和多线程以及定时器等等,Yaf本身不能实现。
 
  所以swoole这个时候,优势突显。swoole可以以deamon形式长期稳定的运行在server上,直接走socket,提供并发服务。
 
  而集成了thrift后,就可以为各种其他端提供数据。比如app,web网页(这个时候,可以用yaf当作前端读取数据提供高性能),甚至为C,c++等端进行数据交互,非常方便。
 
  但是Yaf是鸟哥的成名作,要用框架又要追求高性能就用Yaf吧,据说百度内部用的也是Yaf的修改版或者thinkCMF,据说微博也用的yaf yar所以还是比较好的方案。可以用yaf,推荐搭建hhvm或者php7 。
 
  用你最熟悉的框架就好
 
  高并发主要关注两点:
 
  1,系统架构
 
  2,业务逻辑 这个跟框架还算有点关系,不过关注点不在用什么框架
 
  系统架构
 
  主要是考虑的负载, 网络请求支持,运维轻松搞定,商量好方案,慢慢加机器就好。
 
  业务逻辑
 
  这块做为开发人员,要知道业务本身压力是在数据库读写,文件读写
 
  可以根据情况做缓存方案 和 异步处理方案
 
  在真正的高并发下,程序逻辑本身和单点都会是瓶颈,做好负载均衡解决方案,才是支持无限增长高并发的终极解决方案
 
  总结一下自己的认识: 高性能PHP框架 Phalcon
 
  PhalconPHP 是一个使用 C 扩展开发的 PHP Web 框架,提供高性能和低资源占用。
 
  Phalcon 是一个开源的、全堆栈的 PHP 5 框架,使用 C 扩展编写,专门为高性能优化。无需学习和使用 C 语言,所有函数都以 PHP 类的方式曾现。Phalcon 是一个松耦合的框架。
 
  使用时需在 php.ini 中添加:extension=phalcon.so
 
  Swoole高性能网络通信引擎
 
  Swoole是一个PHP扩展,扩展不是为了提升网站的性能,是为了提升网站的开发效率。最少的性能损耗,换取最大的开发效率。利用Swoole扩展,开发一个复杂的Web功能,可以在很短的时间内完成了。
 
  ——PHP的异步、并行、高性能网络通信引擎,支持TCP长连接,Websocket,Mqtt等协议。
 
  PHP的协程高性能网络通信引擎,使用C/C++语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端/客户端。
 
  Swoole4支持完整的协程编程模式,可以使用完全同步的代码实现异步程序。PHP代码无需额外增加任何关键词php轻框架,底层自动进行协程调度,实现异步IO。
 
  Swoole4协程仅支持PHP7,无法在PHP5中使用
 
  除了异步IO的支持之外,Swoole为PHP多进程的模式设计了多个并发数据结构和IPC通信机制,可以大大简化多进程并发编程的工作。其中包括了并发原子计数器,并发HashTable,Channel,Lock,进程间通信IPC等丰富的功能特性。
 
  Swoole可以广泛应用于互联网、移动通信、企业软件、网络游戏、物联网、车联网、智能家庭等领域。 使用PHP + Swoole作为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。
 
  Swoole是开源免费的自由软件,授权协议是Apache2.0,企业和个人开发者均可免费使用,并且在Swoole之上所作的修改可用于商业产品,无需开源(注:必须保留原作者的版权声明)。
 
  Swoole不是一个像Zend Framework、CakePHP、Yii、symfony、ThinkPHP等一样的框架,也不是一个像WordPress、Drupal、Discuz、UChome等开源产品看齐的项目。 Swoole的目标是向Java框架、Ruby On Rails、Python Django Pylons等一流框架发起挑战。
 
  运行环境:Linux Windows Mac FreeBSD Unix
 
  PHP版本支持:PHP5.3+
 
  支持的数据库:MS SQL Server、MySQL、IBM DB2、Oracle、Interbase 、SQLite、PostgreSQL、ODBC
 
  支持的运行方式:Web、Cli命令行脚本、PHP-GTK GUI。
 
  PHP四大主流框架的优缺点总结 ThinkPHP
 
  ThinkPHP(FCS)是一个轻量级的中型框架,是从Java的Struts结构移植过来的中文PHP开发框架。它使用面向对象的开发结构和MVC模式,并且模拟实现了Struts的标签库,各方面都比较人性化,熟悉J2EE的开发人员相对比较容易上手,适合php框架初学者。 ThinkPHP的宗旨是简化开发、提高效率、易于扩展,其在对数据库的支持方面已经包括MySQL、MSSQL、Sqlite、PgSQL、 Oracle,以及PDO的支持。ThinkPHP有着丰富的文档和示例,框架的兼容性较强,但是其功能有限,因此更适合用于中小项目的开发。
 
  优点:
 
  1.易于上手,有丰富的中文文档;
 
  2.框架的兼容性较强,PHP4和PHP5完全兼容、完全支持UTF8等。
 
  适合用于中小项目的开发
 
  缺点:
 
  1.对Ajax的支持不是很好;
 
  php用框架和不用框架_php轻框架_php框架免费下载
 
  2.目录结构混乱,需要花时间整理;
 
  3.上手容易,但是深入学习较难。
 
  Yii
 
  Yii 是一个基于组件的高性能php框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从 MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主题化,I18N和L10N,Yii提供了 今日Web 2.0应用开发所需要的几乎一切功能。事实上,Yii是最有效率的PHP框架之一。
 
  优点:
 
  纯OOP
 
  用于大规模Web应用
 
  模型使用方便
 
  开发速度快,运行速度也快。性能优异且功能丰富
 
  使用命令行工具。
 
  缺点:
 
  对Model层的指导和考虑较少
 
  文档实例较少
 
  英文太多
 
  要求PHP技术精通,OOP编程要熟练!
 
  View并不是理想view,理想中的view可能只是html代码,不会涉及PHP代码。
 
  CodeIgniter
 
  优点:
 
  Code Igniter推崇“简单就是美”这一原则。没有花哨的设计模式、没有华丽的对象结构,一切都是那么简单。几行代码就能开始运行,再加几 行代码就可以进行输出。可谓是“大道至简”的典范。 配置简单,全部的配置使用PHP脚本来配置,执行效率高;具有基本的路由功能,能够进行一定程度的路 由;具有初步的Layout功能,能够制作一定程度的界面外观;数据库层封装的不错,具有基本的MVC功能. 快速简洁,代码不多,执行性能高,框架简 单,容易上手,学习成本低,文档详细;自带了很多简单好用的library,框架适合小型应用.
 
  缺点:
 
  本身的实现不太理想。内部结构过于混乱,虽然简单易用,但缺乏扩展能力。 把Model层简单的理解为数据库操作. 框架略显简单,只能够满足小型应用,略微不太能够满足中型应用需要.
 
  评价:
 
  总体来说,拿CodeIgniter来完成简单快速的应用还是值得,同时能够构造一定程度的layout,便于模板的复用,数据操作层来说封装的不 错,并且CodeIgniter没有使用很多太复杂的设计模式,执行性能和代码可读性上都不错。至于附加的library 也还不错,简洁高效。
 
  Lavarel 框架
 
  优点:
 
  Laravel 的设计思想是很先进的,非常适合应用各种开发模式TDD, DDD 和BDD,作为一个框
 
  架,它准备好了一切,composer 是个php 的未来,没有composer,PHP 肯定要走向没落。
 
  laravel 最大的特点和优秀之处就是集合了php 比较新的特性,以及各种各样的设计模式,
 
  Ioc 容器,依赖注入等。
 
  缺点:
 
  基于组件式的框架,所以比较臃肿
 

(编辑:草根网_ASP源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章