这是我的真心体会,在尝试使用Laravel、ThinkPHP、Yii、symfony2、CI、cakephp、Yii2 之后的真实想法(default7#zbphp.com)。



1)ThinkPHP (版本号3.1.3)

我一開始用到的是ThinkPHP 3.1.3,入门门槛就是网址与方法相应这一点。当初我接触ThinkPHP3.1.3的时候事实上3.2版本号刚出不久,3.2与3.1.x相比是部分重构,用上了最新的命名空间,考虑到购买的虚拟主机可能不支持命名空间(命名空间必须PHP 5.3.3+才支持),也考虑到国内大部分企业假设已经用上了ThinkPHP,肯定也可能不是最新版的,所以一開始选择的是ThinkPHP3.1.3,用他做了一个站点。整体感觉非常好用,他为你做了尽可能及的一切。并且thinkphp是一家公司在支持,这样就不会说突然倒闭解散,假设是企业想用PHP来做一个平台的话,非常不错的选择,长期稳定。

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)

到了这个时候,心里想的是就选一门easy点的框架来说,想到了非常多年曾经就听过的那一款框架CakePHP(最新版本号cakephp 2.5.1)。下载下来安装,看文档不支持命名空间、不用PHP最新的功能方法。看了英文的一部分文档,非常方便的感觉,对照yii,跟thinkphp一样有专门讲到图片验证码、SESSION、cookie操作,非常类似thinkphp,非常多都为你做好了。然后我下载来做自己的一个站点,我一開始就先做管理员部分,结果就发现,依照cakephp
的思路,管理员和前台事实上应该是在一个文件中面的
。比方你有一个Post表,那么你的管理员和前台的针对Post的操作所有都是在PostController里面,而我期待的是必须前后台分离,没有耦合

4)symfony2(symfony 2.5)

假设不是一本书上介绍到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)

我继续搜索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是差点儿最好的,追求的是运行效率、速度(当然相对)。

对照了这么多框架,发现一个现象,中国的程序和国外的程序猿的思维不同点,中国的程序猿是看钱包点菜,外国的程序猿全然是看自己喜好来点菜。用第二种说法来讲,中国的程序猿是努力去适应环境,而国外的程序猿是努力改变环境。怎么来说,相同一个需求项目,中国程序猿首先考虑到的是server支持吗?版本号支持吗?承受得了多少訪问?配置方面的限制怎么样,怎么样执行最快,国内90%以上的PHP程序都是执行在虚拟主机上,一台server数百个甚至数千个站点。而国外的程序猿全然不须要考虑这些,他们依照自己的思路来,全然不考虑配置,他应该认为怎么样一个架构思路,而不用去关心机器怎么样执行最快,人来决定架构,而不是机器配置决定架构,有种非常文艺的感觉

比方Laravel,他里面每个网址就必须写一个路由,这全然是不考虑server性能,如果整个站点有3000不同形式的个网址,那一次性载入得多少耗费??还有国外比較流行的程序Drupal,也是全然不计较server的配置,而是单纯从人的思考的角度去规划的,他将全部的内容全都想象成节点,key-val的形式,彻底忽略配置的限制。我在本地机子(双核CPU 6G内存)的电脑上执行drupal都卡得无法形容,更别提上传到server。(文 bydefault7#zbphp.com)

==============2014-6-22补充一下=================

补充一下,美国的主机上dreamhost提供的PHPserver是支持最新版的PHP的,后台能够自由切换。所以支持全部最新框架。

我对Laravel ThinkPHP Yii symfony2 CI cakephp 的看法的更多相关文章

  1. 辛星PHP教程之yii和ci教程已经写完,望与朋友们交流

     记得有个朋友给我说,你写的PHP框架是不是过于少了.我感觉仅仅有一个thinkphp确实不好,于是就又写了下yii和ci的教程,事实上我之前是研究过这两个框架的,因此写起来也还算得心应手吧.估计接下 ...

  2. 详细说明php的4中开源框架(TP,CI,Laravel,Yii)

    ThinkPHP简称TP,TP借鉴了Java思想,基于PHP5,充分利用了PHP5的特性,部署简单只需要一个入口文件,一起搞定,简单高效.中文文档齐全,入门超级简单.自带模板引擎,具有独特的数据验证和 ...

  3. nginx 各类网站设置 (laravel , thinkphp , nodejs , https)

    基础部分设置 [root@centos ~]# vim /opt/nginx/conf/nginx.conf user www www;worker_processes auto;pid logs/n ...

  4. 路径重写,适用于laravel,yii

    <IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews </IfModule& ...

  5. 到底如何选择PHP框架?Yii、ThinkPHP、laravel、CI.

    如果你是为了工作和就业,你应该选择框架以工作为目标,看公司里面未来招聘中用的最多的是什么框架.很简单的判断方式 很多朋友都不知道如何去选择框架,选择框架的时候就会很纠结.到底该学什么框架,选择什么框架 ...

  6. php面试题2018

    一 .PHP基础部分 1.PHP语言的一大优势是跨平台,什么是跨平台? PHP的运行环境最优搭配为Apache+MySQL+PHP,此运行环境可以在不同操作系统(例如windows.Linux等)上配 ...

  7. php编程知识点2018

    一 .PHP基础部分 1.PHP语言的一大优势是跨平台,什么是跨平台? PHP的运行环境最优搭配为Apache+MySQL+PHP,此运行环境可以在不同操作系统(例如windows.Linux等)上配 ...

  8. PHP面试题大全(值得收藏)

    PHP进阶.面试:文档.视频资源点击免费获取 一 .PHP基础部分 1.PHP语言的一大优势是跨平台,什么是跨平台? PHP的运行环境最优搭配为Apache+MySQL+PHP,此运行环境可以在不同操 ...

  9. 2019php面试大全

    一 .PHP基础部分 1.PHP语言的一大优势是跨平台,什么是跨平台? PHP的运行环境最优搭配为Apache+MySQL+PHP,此运行环境可以在不同操作系统(例如windows.Linux等)上配 ...

随机推荐

  1. 问题: Type mismatch in key from map: expected org.apache.hadoop.io.Text, recieved org.apache.hadoop.io.LongWritable 解决方案

    在Job中添加相应的输入类型,例如: job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(IntWritable.clas ...

  2. Windows免密码远程桌面

    1.WinKey + R,在对话框中输入“gpedit.msc”,点“确定”:   2.展开:计算机配置--Windows设置--安全设置--本地策略--安全选项,找到“帐户:使用空白密码的本地账户只 ...

  3. Maven构建SSM架构,并分离层次,使用Maven 组织多项目

    参考http://www.cnblogs.com/quanyongan/archive/2013/05/28/3103243.html一步一步搭建,感谢QuantSeven 1.建好的目录结构 说明: ...

  4. 回传值(代理、通知、block)

    回传值问题,一直都是困扰初学者的问题,今写者 代理.通知.block 三者的回传值做了一个小小的总结, Main.storyboard 视图: 通过代码分别创建三个代表 代理.通知.block 的按钮 ...

  5. QT学习篇:入门(1)

    第一个为管理界面: (1)安全库存的设置,包括序号.物品代码.物品类型.最大库存量.最小库存量.最大库存比率.最小库存比率: (2)计算频率设置,包括:实时,定时(单位分为:分钟.小时.天),来自gl ...

  6. Linux下Fork与Exec使用

    Linux下Fork与Exec使用   一.引言 对于没有接触过Unix/Linux操作系统的人来说,fork是最难理解的概念之一:它执行一次却返回两个值.fork函数是Unix系统最杰出的成就之一, ...

  7. 若后台的Activity被系统回收...

    你后台的Activity被系统回收怎么办?如果后台的Activity由于某种原因被系统回收了,如何在被系统回收之前保存当前状态? 除了在栈顶的Activity,其他的Activity都有可能在内存不足 ...

  8. 转载,crtmpserver文件夹结构分析

    1. 顶层(crtmpserver/) 下的文件夹结构 3rdparty/             : 对lua, xml进行解析的源代码文件夹 sources/              : 项目的 ...

  9. php本页面调试报错配置

    ini_set('display_errors', 'On'); ini_set('memory_limit', '64M'); //报错,详细 error_reporting(E_ALL); //不 ...

  10. 学习开发jquery插件

    先学习http://www.cnblogs.com/playerlife/archive/2012/05/11/2495269.html http://www.cnblogs.com/fromeart ...