[翻]Laravel,Symfony和Zend对比
来源:互联网 发布:淘宝达人怎样申请大v 编辑:程序博客网 时间:2024/05/01 13:13
在互联网上充斥着各种各样比较 PHP 框架的标准。然而,他们总是把毫无相干的事物相对比。在这里我想尤其关注 Laravel ,Symfony,和 Zend 并说明为什么总有人把他们混在一起错误的比较。
你不必相信我的话。在您看完这篇文章之后,你可以运行你的 DigitalOcean 服务器,花5分钟来自己测试这些结果。
在开始之前,您需要知道所有的这些框架都足够的快速来处理任何您想建立的应用。我甚至很犹豫要不要写这篇文章,因为我觉得在 PHP 的独特魅力之上加上所谓的标杆是非常愚蠢的。我只想告诉人们怎么去公平的比较这三个框架。
问题
当你第一次在服务器上配置 Symfony 或者 Zend 的项目时,你会发现这里没有返回 session 信息。注意在当前网站没有 cookies
然而, Laravel装载着 sessions ( 和其他的中间组件)使自己能够跳出默认的登录页面。这很方便因为大多数的使用这些框架的网站都使用 sessions 来记录用户的登录状态。我把这视为让用户方便的基础,虽然这样对于基础的标杆比较不太公平。
注:上段主要是说Laravel不需要自己去设置session而是在中间组件中默认已经设置好的,只需要使用命令php artisan make:auth就可以根据脚手架生成基础的登录注册
另一个普遍的错误是在部署代码时不去优化一下Composer的自动加载或者不去使用php artisan config:cache
命令来缓存 Laravel 的配置,这会节约一大段加载bootstrap的时间。
配置
我在一台2GB的带有 PHP 7.1 的 Digital Ocean 服务器上搭建了 Laravel Forge。我已经安装了 Symfony ,优化了自动加载,并且通过生产环境下前端控制器(app.php)配置了Nginx来服务 Symfony。我还遵循了 Symfony 生产环境的调优指南。对于 Zend 我也使用了相同的基本步骤。
然后,我使用了下面的配置来设置生产环境下 PHP 7.1的opcache
:
opcache.enable=1opcache.memory_consumption=512opcache.interned_strings_buffer=64opcache.max_accelerated_files=20000opcache.validate_timestamps=0opcache.save_comments=1opcache.fast_shutdown=1
当我安装 Laravel 时,我使用 config:cache
命令并且注释掉了app/Http/Kernel.php
文件中的一批web
中间组件。这些中间组件负责 sessions 的实现。这个改变让我们能够不使用 session 处理来测试所有的三个框架。
结果
在部署好了这些项目后,我使用Apache压力测试来做一个简单的测试
ab -t 10 -c 10 http://server.address/
以下是结果:
没有 Sessions :
- Laravel: 609.03 requests per second (平均)
- Zend: 559.91 requests per second (平均)
- Symfony: 532.97 requests per second (平均)
有 Sessions:
- Laravel: 521.64 requests per second (平均)
- Zend: 484.94 requests per second (平均)
- Symfony: 439.37 requests per second (平均)
原作者:Taylor Otwell,Laravel 创始人
原文章:Benchmarking Laravel,Symfony,&Zend
翻译者:赖杰
- [翻]Laravel,Symfony和Zend对比
- PHP之Zend,Symfony,CakePhp
- PHP框架高级编程——应用Symfony、CakePHP和Zend
- laravel yii 区别 symfony route 参数
- symfony 数据库和doctrine
- Thinkphp,qeephp,cakephp,zendframework,symfony 对比
- php mvc框架-symfony/cakephp/codeIgniter/zend framwork
- symfony
- symfony
- Symfony
- symfony
- symfony
- symfony
- symfony
- Symfony
- Symfony
- Zend Guard和ionCube两款PHP加密、解密工具对比
- 创和翻
- 小徐腐败记
- Cisco交换机路由器密码破解
- 让EditPlus不生成.bak 文件
- Android 记录一个好用的文件存储操作工具类SDCardHelper
- Seasar2.4系学习教程(一)
- [翻]Laravel,Symfony和Zend对比
- 第六届蓝桥杯【省赛试题2】星系炸弹
- angularJS01
- java常用的排序和查找算法
- angularJS02
- 操作系统 处理器调度
- c++ 采用链式结构实现关于入栈,出栈,打印栈的操作
- Unity Shader Bump Diffuse
- angularJS-03