主要涉及到的框架有

CodeIgniter 老品牌易用性框架
yaf 鸟哥用c写的php扩展,高性能框架
yii 自动生成代码(gii)
laravel 号称最优雅的框架
swoole framework 支持swoole扩展的框架
kohana 脱身与CI 2,基于hmvc模式的框架
thinkphp 国产易用工具
自定义框架(只提供route、autoload、db、redis、mvc、config及其他常见类库封装)

以上框架使用的均为最新版本

评测方式

考虑到公司级别项目开发,需要把框架独立到某目录下,其他项目的入口文件统一读取此目录内的框架资源

controller中再入view并传递title,view中直接echo $title,关闭debug等其他调试开关

siege -c 500 -t 5s  并发500持续5s

php7环境下,2.5GHZi7 16G内存

性能

毫无疑问鸟哥的yaf最高

自定义框架由于极少的代码量,表现也很好,做不得数

其次是rango老大的swoole framework

之后是CI>thinkphp>kohana>yii>laravel

由于我对yii并不熟悉,如有优化点请告知重新进行评测

安装

ci和kohana使用的还是熟悉的安装方式,解压zip,安装使用起来毫无问题

yaf使用phpize安装也毫无难度

关于YII 2,让我惊讶无比,不得不拿出来单独说一下

安装 深深的感觉自己的智商已欠费

1. 官网推荐composer安装一个basic版,由于国内环境,时间过长,附带一堆乱七八糟的东西看着烦
2. 抽出独立的yii-soft失败,提示错误,暂时未找到解决方案(最后发现是layout的问题,已解决)
3. basic版本安装完成后给我看你的那么复杂的欢迎页是几个意思?
4. 我改了controller和view,为什么还被侵入了你的样式(后查推测跟view中的layout目录有关,查文档得知需要手动layout=false)
5. layout关了为什么压测性能下降了那么多

关于框架的思考

通过这些年的工作和项目经验,我认为框架只要提供好几个功能点就足够了

1. autoload
2. dev/pro分离(包括config自动载入不同目录下)
3. mvc(不需要所谓的Smarty等模板引擎,php语法足够优秀易懂)
4. db/redis/orm(ORM可以实现读写分离,锦上添花而已,毕竟有中间层可以更专业的解决这个问题)
5. router

有大神指点,还需要di、面向接口实现类、完整的单元测试

像脚手架一类的东西,真的是框架该做的么?就算提供了,公司级别的项目又是否用得到,是否敢信任框架帮你生成的代码。

基于上述思考,我才自己开发了simple框架(git:https://github.com/bingxuecandong/simple/tree/new_simple 欢迎提供建议及吐槽),提供自己日常编码、项目使用已经足够,开发效率并不低,跟其他主流开源框架一起评测也是聊以慰藉了。

最新文章

  1. 【热文】 为什么很多硅谷工程师偏爱 OS X,而不是 Linux 或 Windows?
  2. 5.5---整数A转成整数B(CC150)
  3. Portable Operating System Interface for uni-X
  4. 利用扩展事件(Xevents)捕捉高消耗查询
  5. [moka同学笔记]一、Yii2.0课程笔记(魏曦老师教程)
  6. java WebSocket Demo
  7. python 实现冒泡排序与快速排序 遇到的错误与问题
  8. ios 免书籍入门站点
  9. cocos2d-x环境的搭建之xcode-本人亲历成功搭建!
  10. css3常用样式集锦
  11. 学习 Kubernetes 的 Why 和 How - 每天5分钟玩转 Docker 容器技术(114)
  12. Nginx负载均衡和反向代理
  13. RabbitMQ 学习
  14. 【Java】-NO.16.EBook.4.Java.1.008-【疯狂Java讲义第3版 李刚】- 集合/容器
  15. [UE4]碰撞的随机性
  16. android 开发 RecyclerView 横排列列表布局
  17. 资源 | 源自斯坦福CS229,机器学习备忘录在集结
  18. 我们是如何拿下Google和Facebook Offer的?
  19. 【BZOJ3293】分金币(贪心)
  20. MFC中的UpdateData()

热门文章

  1. 「Python」19个python编写技巧
  2. 关于HttpURLConnection/HttpsURLConnection请求出现了io.filenotfoundexception:url的解决方法
  3. windows下libcurl与zlib和ssl共同编译
  4. 动态规划:双重DP
  5. .Net公用代码
  6. 《HTML5编程之旅》系列二:Communication 技术初探
  7. 【洛谷 P4219】 [BJOI2014]大融合(LCT)
  8. Count on a tree(SPOJ COT + 树上第k大 + 主席树 + LCA)
  9. AJAX的前世今生与未来
  10. .ui/qrc文件自动生成.py文件