1)ThinkPHP (版本3.1.3)php
我一开始用到的是ThinkPHP 3.1.3,入门门槛就是网址与方法对应这一点。当初我接触ThinkPHP3.1.3的时候其实3.2版本刚出不久,3.2与3.1.x相比是部分重构,用上了最新的命名空间,考虑到购买的虚拟主机可能不支持命名空间(命名空间必须PHP 5.3.3+才支持),也考虑到国内大部分企业若是已经用上了ThinkPHP,确定也可能不是最新版的,因此一开始选择的是ThinkPHP3.1.3,用他作了一个网站。整体感受很好用,他为你作了尽量及的一切。并且thinkphp是一家公司在支持,这样就不会说忽然倒闭解散,若是是企业想用PHP来作一个平台的话,很不错的选择,长期稳定。laravel
2)Yii (版本 Yii 1.1.14)程序员
我学会了ThinkPHP以后,我就想到了再多学一门框架吧,这样之后找工做也更好一点,谈也好谈。而后偶然一次我去一家金融方面的公司面试PHP,他们用的是Yii。回来后网上搜索了Yii相关资料,看到不少人对Yii的介绍称赞,AR、延迟加载、DAO、L10N、I18N,感受yii必定颇有前景。便开始研究Yii(Yii 1.1.x)。看手册,全英文的,偶然有看到帖子说Yii做者是中国人。后来才确认Yii 确实只中国人写的。看了入门,本身下载下来安装,感受以本身如今的水平来讲很难,不少要记忆的zii widgets,并且耦合度很是高,(我刚开始接触Yii的时候写的一个见解http://bbs.csdn.net/topics/390807796)Html模板里面的写法耦合度更高,便放弃了。面试
3)cakephp (版本 2.5.1)thinkphp
到了这个时候,内心想的是就选一门容易点的框架来讲,想到了不少年之前就听过的那一款框架CakePHP(最新版本cakephp 2.5.1)。下载下来安装,看文档不支持命名空间、不用PHP最新的功能方法。看了英文的一部分文档,很方便的感受,对比yii,跟thinkphp同样有专门讲到图片验证码、SESSION、cookie操做,很相似thinkphp,不少都为你作好了。而后我下载来作本身的一个网站,我一开始就先作管理员部分,结果就发现,按照cakephp 的思路,管理员和前台其实应该是在一个文件里面的。好比你有一个Post表,那么你的管理员和前台的针对Post的操做所有都是在PostController里面,而我期待的是必须先后台分离,没有耦合。服务器
4)symfony2(symfony 2.5)cookie
若是不是一本书上介绍到symfony,而且对他有不少很是好的评价,我想我绝对特不会知道并关注symfony2的。开始接触symfony2,发现他安装方法跟我之前接触到的PHP彻底不同,composer安装,很新颖,这彻底颠覆了我之前对PHP的某些认识。Symfony2必须在PHP 5.3.3以上的版本,其实如今再去看,是必须PHP 5.4+以上版本,由于他里面的一些组件component要求的是最新版本,由于我写这篇文章的时候,我对这些框架的接触都是在数个礼拜以前,而这一段时间看的框架太多,可能有点混淆,若是有纰漏,或者探讨能够发邮件 default7#zbphp.com。安装好了symfony2以后,仔细阅读symfony2的内容,他最大的特色就是将一整套程序的运行对比成电脑计算机的Input+Output+CPU。Request Resonse 和 PHP处理部分(其实这样的思路后来其余的框架Yii laravel cakephp 3.x全都借鉴了)。我再继续阅读symfony2的文档,他里面不会像thinkphp那样讲图片验证码、IP、IP归属地怎么查询、图片怎么上传处理之类的,搜索不少相关资料,感受symfony2是一个HTTP框架,可是并非MVC框架,而是一个HTTP框架。他有C 和V,可是没有M。思路跟yii thinkphp彻底不同的,组件化component的思想,跟Ror的任何都是对象的思路不同,他是任何都是组件,低耦合。架构
5)Laravel (Laravel4.2)composer
我继续搜索PHP MVC Framework方面的帖子,找了好久,看到有一篇文章上配了一张图(上面那一张),说截止到2013年年末,Laravel占有率是最高的!而后便去了解laravel,百度搜索Laravel,已经有蛮多网站了,好比 www.golaravel.com,介绍laravel框架,文档,介绍到Restful功能、是企业级框架。框架
其实我一直以来都想找一个这样的框架,长期、稳定,不会一会儿就解散了不支持了,不会说今天一变明天一变。而且有命名空间最新的几个功能得有,能够省去之后常常重构麻烦。下载安装laravel,也是composer方式安装。而后开始用了,发现他官方上一直很推崇的路由功能,使用起来却很繁琐。每一条请求网址都要写一条路由。想到这里以为不敢想像,一个网站的网址不少的,并且不相同的规律,包括管理员后台,若是这样每一条网址都要写一个路由,并且所有都是些到routes.php这一个文件里面去,你想象一下,加载要耗费多少资源时间???并且描述上说的文档丰富,可是看到了真的不多,不齐全(对比symfony cakephp,他的文档真少)。
6)从新回到Yii(Yii 2.0)
其实我这一阵子一直都在寻找一款MVC框架,支持命名空间、支持AR、方便好用,有图片验证码自动生成、图片上传处理,水印处理,支持I18N,多语言、有不少人在使用、成熟的文档、稳定长期、适合企业级。最后对比了这么多框架仍是回到了最开始想到的那几个框架,从新回到Yii。想到本身为何一开始就以为Yii不适合,但去对比了其余框架,才发现Yii是几乎最好的,追求的是执行效率、速度(固然相对)。
对比了这么多框架,发现一个现象,中国的程序和国外的程序员的思惟不一样点,中国的程序员是看钱包点菜,外国的程序员彻底是看本身喜爱来点菜。用另一种说法来说,中国的程序员是努力去适应环境,而国外的程序员是努力改变环境。怎么来讲,一样一个需求项目,中国程序员首先考虑到的是服务器支持吗?版本支持吗?承受得了多少访问?配置方面的限制怎么样,怎么样运行最快,国内90%以上的PHP程序都是运行在虚拟主机上,一台服务器数百个甚至数千个网站。而国外的程序员彻底不须要考虑这些,他们按照本身的思路来,彻底不考虑配置,他应该以为怎么样一个架构思路,而不用去关心机器怎么样运行最快,人来决定架构,而不是机器配置决定架构,有种很文艺的感受。
好比Laravel,他里面每个网址就必须写一个路由,这彻底是不考虑服务器性能,假设整个网站有3000不一样形式的个网址,那一次性加载得多少耗费??还有国外比较流行的程序Drupal,也是彻底不计较服务器的配置,而是单纯从人的思考的角度去规划的,他将全部的内容全都想象成节点,key-val的形式,完全忽略配置的限制。我在本地机子(双核CPU 6G内存)的电脑上运行drupal都卡得没法形容,更别提上传到服务器。(文 bydefault7#zbphp.com)
==============2014-6-22补充一下=================
补充一下,美国的主机上dreamhost提供的PHP服务器是支持最新版的PHP的,后台能够自由切换。因此支持全部最新框架。