我对Laravel ThinkPHP Yii symfony2 CI cakephp 的看法

这是我的真心体会,在尝试使用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都卡得无法形容,更别提上传到服务器。(文 bydefault7#zbphp.com)

我对Laravel ThinkPHP Yii symfony2 CI cakephp 的看法,布布扣,bubuko.com

时间: 2024-11-05 03:03:54

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

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

 记得有个朋友给我说,你写的PHP框架是不是过于少了,我感觉只有一个thinkphp确实不好,于是就又写了下yii和ci的教程,其实我之前是研究过这两个框架的,因此写起来也还算得心应手吧,预计接下来就要出项目实战的了,期待您的关注吧. 首先就是这两个框架的下载地址了,第一个是yii的:yii教程   ,然后就是ci的:ci教程  .可能还是有些朋友们想看看它的大致内容,这里我给个截图吧: 上面是目录的截图,对于其中的内容,也来个截图吧: 如果您喜欢的话,那么就不妨去下载看看吧.

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

ThinkPHP简称TP,TP借鉴了Java思想,基于PHP5,充分利用了PHP5的特性,部署简单只需要一个入口文件,一起搞定,简单高效.中文文档齐全,入门超级简单.自带模板引擎,具有独特的数据验证和自动填充功能,框架更新速度比较速度. 优点:这个框架易使用 易学 安全 对bae sae支持很好提供的工具也很强大 可以支持比较大的项目开发 易扩展 全中文文档 总的来说这款框架适合非常适合国人使用 性能 上比CI还要强一些 缺点:配置对有些人来说有些复杂(其实是因为没有认真的读过其框架源码)文档有

ThinkPHP tp Codeigniter ci 微信开发 控制器代码 示例 实例 模拟http请求 获取acces_token 创建自定义菜单 点击事件 转多客服

0 public function index(){ //echo $this->getAccessToken(); //$this->selectMenu(); //$this->creatMenu(); //$this->deleteMenu(); /* //用于验证的代码 勿动!! $tmpArr = array('xcjr2015', $_GET["timestamp"], $_GET["nonce"]); sort($tmpArr,

路径重写,适用于laravel,yii

<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews </IfModule> RewriteEngine On #直接访问域名而没有参数的情况下直接重写到入口文件 RewriteCond %{REQUEST_URI} ^.?$ RewriteRule ^(.*)$ /public/index.php [L] #如果public目录下存在请求目录或文件,重写请求到实际目录 Rew

2019php面试大全

一 .PHP基础部分 1.PHP语言的一大优势是跨平台,什么是跨平台? PHP的运行环境最优搭配为Apache+MySQL+PHP,此运行环境可以在不同操作系统(例如windows.Linux等)上配置,不受操作系统的限制,所以叫跨平台 2.WEB开发中数据提交方式有几种?有什么区别?百度使用哪种方式? Get与post两种方式区别:(1)url可见性:get 方式url参数可见,post 不可见 (2)可缓存性:get 方式是可以缓存的,post 方式不可以缓存. (3)传输数据大小:get一

php精简完全小结(linux/laravel篇)

php官网:http://www.php.netphp版本: 查看:php -version说明:None-Thread Safe就是非线程安全,在执行时不进行线程(thread)安全检查:Thread Safe就是线程安全,执行时会进行线程(thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式耗尽系统资源.再来看PHP的两种执行方式:ISAPI和FastCGI.FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效

ThinkPHP - 目录介绍

ThinkPHP框架 特点: 免费开源 敏捷开发(快速开发) 面向对象 MVC思想 yii,ci之类的框架都有这些特点.是06年到现在的一个老牌框架,现在还是个很不错的框架 Application:应用程序目录 Public:静态资源目录 ThinkPHP:tp框架本身 Common:公共文件目录 Conf:配置文件 Lang:语言包 Library:系统核心基内库 Tpl:系统模版目录 index.php:项目的单一入口 直接在环境下用浏览器打开如:localhost/shopp 进入即可看到

使用 Composer 为 ThinkPHP(3.2.3)框架添加和管理组建

环境:Windows 10 64位 PHP 版本:5.5.12 框架:ThinkPHP 3.2.3 Tips: 组件:打包的代码,可以是一系列相关的类(class).接口(interface).特性(trait),用于解决某个具体的问题.组件中的类.接口.特性通常放在同一个命名空间中. Packagist:https://packagist.org/,该网站收集 PHP 组件,可以在上面查找项目中需要的组件.ThinkPHP 在该站的地址为:https://packagist.org/packa

【Yii框架 一 】PHP框架,Yii概述

PHP的框架,只接触过三种:ThinkPHP.Laravel.Yii,前两种作了解,项目中用的Yii. 一.3种框架简述 1. ThinkPHP ThinkPHP是我发布的第一个PHP项目用的框架,那会儿也是刚接触PHP这门语言,目录结构简单,主要分三大部分:Application(应用目录).Public(资源文件).ThinkPHP(框架目录),外加一个入口文件index.php--最后放弃了这个框架,改用Laravel. ThinkPHP(TP)是一个快速.兼容而且简单的轻量级国产PHP框