本人小菜鸟一只,为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,服务器)等一系列的知识,小菜鸟创建了一个群。希望光临本博客的人可以进来交流。寻求共同发展。搭建平台。

本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加)。

QQ群:   281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29LoD19)    QQ:1542385235

这是我的真心体会,在尝试使用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)

到了这个时候,心里想的是就选一门容易点的框架来说,想到了很多年以前就听过的那一款框架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是几乎最好的,追求的是执行效率、速度(当然相对)。

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

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

本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加)。

QQ群:   281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29LoD19)    QQ:1542385235

我的淘宝店,可以进去逛逛噢:https://shop108912636.taobao.com/index.htm?spm=2013.1.w5001-7867000954.3.1d29318dPlLar7&scene=taobao_shop

转载于:https://www.cnblogs.com/piwefei/p/5329132.html

Yii和ThinkPHP对比心得相关推荐

  1. Yii和ThinkPHP对比杂谈

    本人小菜鸟一只,为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,服务器)等一系列的知识,小菜鸟创建了一个群.希望光临本博客的人可以进来交流.寻求共同发展 ...

  2. yii和thinkphp杂谈

    2019独角兽企业重金招聘Python工程师标准>>> 这不是一篇评测文章.只是我的喃喃碎语,不计较真.而且,下面的内容真的会很杂,不全面,而且你不可能有和我一样的开发经历.所以对于 ...

  3. 当代大学生编程学习与现实生活横向对比心得体悟

    各位博客朋友们,大家好,我来自陕西西安,是来自西安一所211高校的本科生.和许多博客朋友们一样,我也怀有进入腾讯,阿里,谷歌这种大公司工作的梦想,随着西安这次重大疫情,我对编写代码,程序的热情仍在,但 ...

  4. php没有上级分类的联动,ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单...

    首先是数据库的设计.分类表叫cate. 我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为 ...

  5. 用node.js 搭建的博客程序心得(node.js实战读书笔记1)

    学习node已经有一段时间了,之前把了不起的node.js看完了,基本算了解了一些node的基本的用法还有一些概念了,然后就开始看第二本node.js实战,第一章就是搭建一个博客程序.但是不得不吐槽一 ...

  6. 卷积神经网络基础(最详细)+如何写代码(Pytorch)+推荐学习顺序+心得感悟

    目录 卷积神经网络 为什么要使用卷积神经网络? 神经网络中的各层 卷积操作 权重共享 填充 步幅 3 维数据的卷积运算 激活函数 输出层的激活函数 卷积层的激活函数 池化 重叠池化 池化层的特征 BN ...

  7. PHP工程师需要掌握的知识(转载)

    掌握PHP基础.文件操作.面向对象编程.CURL扩展. 掌握Linux环境下面LAMP环境搭建.LNMP环境搭建. 了解基本的HTTP协议和计算机网络知识. 熟悉常用的算法与数据结构知识,队列.栈.队 ...

  8. 基于Discuz的原生态MVC框架Uxf

    前言 国内大量网站在使用Discuz程序,当然,大多数网站只将其作为一款论坛程序,少量的将其作为一款完整的社区程序.因此,授权不授权的情况撇开不谈,很多人都会基于该款程序进行二次开发. Discuz二 ...

  9. CodeIgniter学习笔记 Item10--CI总结精华

    Yii CI ThinkPHP ZF 主要内容 CI简介 深入MVC设计模式 CI中控制器与视图 CI的超级对象 数据库访问 AR模型 如何扩展CI的控制器(登录验证) 模型 url相关函数 设置路由 ...

最新文章

  1. 守护线程与线程阻塞的四种情况
  2. 【小松教你手游开发】【unity实用技能】计算目标物体是否在自己的扇形视野范围...
  3. python 类中方法的动态特性
  4. 用户代码未处理EntityCommandExecutionmException报错解决方案
  5. kafka生产消费原理笔记
  6. 【html】【17】高级篇--loading加载
  7. hashmap是线程安全的吗?怎么解决?_线程安全及三种解决方案
  8. 投资五大基本法则,助你在理财投资路上走得更平稳顺利
  9. jsp之servlet模板问题
  10. 人工智能-baidu-aip语音识别(语音转文字)
  11. 查看Linux内核版本命令
  12. Winform常用控件的使用(一)
  13. 支付宝提现要手续费吗?
  14. Encoded password does not look like BCrypt 异常处理
  15. TOTP 介绍及基于C#的简单实现
  16. Linux下通过开源软件fail2ban进行远程登录防护
  17. 用图片制作radio单选按钮
  18. spark解决Illegal pattern component: XXX NoSuchFieldError: KRYO_SARG_BUFFER
  19. 国家两部委印发《智慧家庭综合标准化体系建设指南》
  20. 中勒索病毒后的正确操作姿势

热门文章

  1. ctfshow-WEB-web4
  2. SqlServer2000中作业无法删除的原因和解决办法
  3. MySQL 5.6 rpm安装方法和碰见的问题
  4. python操作mysql,增,删,改,查
  5. 用两万篇论文告诉你:机器学习在过去五年中发生了什么
  6. 修改Linux用户的UID、GID
  7. AMD第七代桌面APU揭秘:主流首次上DDR4
  8. APACHE 问题集合
  9. Mathpix图片转LaTeX,Word快速插入LaTeX公式教程
  10. Python的安装(源码编译安装,IDE安装)