18720358503 在线客服 人才招聘 返回顶部
企业动态 技术分享 行业动态

PHP架构的挑选及几款流行架构的特性基础评测

2021-02-22分享 "> 对不起,没有下一图集了!">

要求

没什么疑惑,Web架构技术性在近几年早已获得了飞速发展的发展趋势和普及,在以往几年里,架构技术性的广泛亲身经历了较为大的健全全过程,很大1一部分能够归因于RubyonRails,和在别的程序编写語言中流露出的MVC架构观念。

  假如你是1个PHP忍者,而并不是1个铁杆的Ruby追随着者,你或许会惊讶市面上上早已有这么多的架构,哪个才是合适你的。自然回应和个难题取决于的众多要素,今日大家可能回望1下这个典型的难题,怎样为你的下1个运用系统软件挑选合适你的PHP架构。

  另外大家也看来1下较为时兴的PHP架构,较为1下她们的差别,这样能够帮你自身做出明智的挑选,寻找最合适你新项目的架构。

  确立你的要求

  在你决策为你的新项目挑选1个架构以前,你当先了解必须,要求和掌握1些开发设计精英团队幕后的工作中,大家总结出了以下几个难题,在刚开始下1步以前你能够试着问问自身。

  你的运用程序流程关键集中化于处理哪些难题?

  你的运用能够是1个电子器件商务服务平台,1个社交媒体网站,信息共享资源服务平台或主题活动文件目录,举例来讲,假如你正在搭建1个电子器件商务网站,你或许更期待采用1些具备用于解决个人信用卡和买卖对话的完善的拓展涵数库的架构。另外一层面,假如是1个轻量级的信息服务平台(例如说新浪微博类系统软件),则你或许更应当重视迅速的拓展和跨服务器跨数据信息的支撑点浏览工作能力,以便完成负载平衡和迅速联接浏览。

  你的主机运作自然环境将是甚么?

  一些独特的架构会必须应用到1些非默认设置的其它PHP拓展或手机软件安裝在服务器上,例如,一些架构的数据信息抽象性层务必规定根据PDO来完成浏览,而非立即启用更最底层的MySQL或MySQLi,或一些相近wiki类的程序流程的图象缩小和解决作用常常必须应用到ImageMagick或Graphiviz这些外界程序流程。而这些拓展或许其实不会被全部的共享资源主机自然环境(虚似主机)适用,另外就算是1个轻量级的小型架构,并且自身集成化了全部所需的涵数库而且也具备优良的可移殖性和融入性,这样的架构运用在解决数据信息聚集型的实际操作或大中型数据信息解决的系统软件时,特性又会变成它的关键短板。

  你的开发设计人员或精英团队的优点和缺点在于甚么?

  假如你是个新项目主管,1个关键的事儿是掌握清晰你的实际开发设计人员她们的工作能力和弱势,由于她们是真的闷头干活儿人,因此或许你能够挑选1些更为朝向开发设计人员友善的非常容易上手的架构。自然这个难题的或许其实不是危害决策是不是选用1个架构的决策性要素(持续地规定自身和精英团队学习培训新的技术性一直好的),但着肯定是1个会危害到你的時间表、费用预算和安全性等多层面要素的关键考虑标准。

  怎样在“高藕合性”還是“低藕合性”的架构中做出挑选?

  假如从架构商品本身的藕合性来将现阶段流行的php架构商品分成高藕合性和低藕合性两类。低藕合性的架构看起来更好像1个丰富多彩的涵数库和逻辑性封裝的抽象性层,乃至一些好的架构本身便是PHP的1个高級拓展组件,例如PDO,它肯定算得上是1个数据信息浏览的架构也是抽象性层。也有1些别的值得1提的低藕合性架构,例如ZendFramework,CakePHP,和中国开发设计的ThinkPHP都属于这个范围。假如你将接手的新项目历史时间难题较为多,而且对UI的自定较为高,你恐怕必须1个低藕合性的架构来考虑你灵便的要求。

  另外一层面是1些高藕合性架构的意味着,例如1些由CRM衍生而来架构相近Drupal,Joomla,也有立即便是以便高藕合性而开发设计的OpenbizCubi架构,中国小范畴时兴的架构也有普元等。这些架构的最佳秀的特性是可让你彻底只集中化于完成你的关键业务流程逻辑性,你乃至无需去管怎样完成UI和客户对话管理方法这些基本特点,你只必须把你的编码和它们出示的插口标准开展“联接”便可以了。假如你负责的新项目是1个新的新项目,你毫无疑问不期待把绝大多数的時间都花在完成基本业务流程逻辑性上,例如将会是为顾客企业开发设计1套“泊车场管理方法系统软件”,還是挑选相近OpenbizCubi这样的架构,在其之上立即去完成你的业务流程逻辑性是最对得起你的時间费用预算和项目投资收益率的。

简易的特性评测
实例
本次检测輸出简易的hello word,简易MVC逻辑性,(Router -> Controller -> Viewer),沒有数据信息库联接,沒有任何逻辑性.
硬件配置服务平台
CPU: Intel Core i5 750 (2.67GHz x4)
RAM: 4GB
手机软件自然环境
Debian 6.0.4 x86_64 (2.6.32⑷1)
apache 2.2.16 (mpm-prefork,mod-php5)
php 5.3.10
php-apc 3.1.9 (Optimization for include/require)
Copy all projects to /dev/shm/* (Optimization for files read/write)
PHP架构目录
* zf: Zend Framework
Site: http://framework.zend.com
Ver: 1.11.11
* zf2: Zend Framework
Site: http://framework.zend.com
Site: https://github.com/zendframework/ZendSkeletonApplication
Ver: 2.0.0-beta1
* symfony: symfony
Site: http://www.symfony-project.org
Ver: 2.0.0
* cakephp: CakePHP
Site: http://cakephp.org
Ver: 2.0.4
* ci: CodeIgniter
Site: http://codeigniter.com
Ver: 2.1.0
* yii: Yii Framework
Site: http://www.yiiframework.com
Ver: 1.1.8
* micromvc4: MicroMVC
Site: http://www.micromvc.com
Ver: 4.0.0
* laravel: Laravel, A PHP Framework For Web Artisans
Site: http://laravel.com
Ver: 2.0.2
* slim: Slim Framework
Site: http://www.slimframework.com
Ver: 1.5.0
* yaf: Yet Another Framework in PHP Extension
Site: http://code.google.com/p/yafphp
Ver: 2.1.3-beta (yaf.cache_config=1)
* FuelPHP: Simple, Flexible, Community driven Web Framework
Site: http://fuelphp.com/
Ver: 1.1
* ColaPHP:
Site: http://code.google.com/p/colaphp/
Ver: 1.2-ga
# XHProf: A Hierarchical Profiler for PHP
Site: http://pecl.php.net/xhprof
Ver: 0.9.2
# The source code of this testing:
Source: https://github.com/eryx/php-framework-benchmark
1. Apache Benchmark
Requests pre second (-c 100 -n 30000), the bigger is better

恳求/秒(-c 200 -n 50000), 标值越大越好

2. 系统软件负载
工作压力检测1分钟内进行的负载图
越小越好(-c 100 -n 30000)

3. 运行内存应用率
检测hello word占有的运行内存,越小越好.

4. 回应時间
网页页面的回应時间.企业彼此之间

5. 启用方式的数量(Facebook XHProf)
单独hello word网页页面启用了是多少方式,zend5620个方式,是否太臃肿了。

6. 文档数量
开启hellow word用到included or required in 文档的数量.越小越好,zend许多,yii19个,yaf才4个,不快才怪。

"> 对不起,没有下一图集了!">
在线咨询