laravel - 求推荐PHP框架,本人有一定PHP基础。

本人学过PHP,现在希望学习一个PHP的框架。
通过网上查阅资料,我了解到以下几个框架经常被提到:

  • ThinkPHP:国产的PHP框架,不过感觉很多人对其评价不高。
  • CodeIgniter:有人说它功能很弱,设计思想比较老。
  • Laravel:据说是国外使用最多的PHP框架,我到Github上看了看确实挺热。但国内好像就很冷。
  • 其他:Yii?CakePHP?Zend Framework?……

求指点。

——————

8月10日:根据大家的回答,决定学习Laravel。谢谢大家的解答。

提问者猪哥提问时间:2017-04-10 15:13我来回答
46回答
巴扎黑
回复巴扎黑赞同05个月前

我用thinkphp3.2 转到yii 再后来 从yii2 转到thinkphp5.0 呵呵 ,我也不知道为什么又回来,主要是能满足我的需求,就会去做

    阿神
    回复阿神赞同05个月前

    鸟哥的Yaf框架不错的

      阿神
      回复阿神赞同05个月前

      新手就用Yii吧

        迷茫
        回复迷茫赞同05个月前

        PHP所有的框架都类似,学会一种后再学习其他的框架都比较简单了,

          猪哥
          回复猪哥赞同05个月前

          看来Kohana 是没人用了_(:з」∠)_

            伊谢尔伦
            回复伊谢尔伦赞同05个月前

            symfony

              Peter Zhu
              回复Peter Zhu赞同05个月前

              最近看到 slim这样的小框架 感觉不错

                刘奇
                回复刘奇赞同05个月前

                我之前一直在纠结Laravel和Phalcon,不过写完几个demo后我就果断选择了phalcon,laravel真的很臃肿,一个PHP框架甚至比Symfony还重是无法接受的。相反,phalcon跑起来飞快,设计优雅,写起来十分舒服。另外,phalcon 2.0之后是一个跨越,以后很多非controller层的代码可以封装到扩展中,这个性能想想就激动。不过选框架这种事情跟找女朋友差不多,不是非得追求最漂亮的,适合自己就好。

                  巴扎黑
                  回复巴扎黑赞同05个月前

                  我的一个开源框架,如果可以有兴趣可以一起研究发展

                    PHPzhong
                    回复PHPzhong赞同05个月前

                    symfony2正在学习,一起共勉吧

                      伊谢尔伦
                      回复伊谢尔伦赞同05个月前

                      Symfony2 ,一定要学,它有着先进的设计思想,代表 PHP 最先进的生产力!

                        PHPzhong
                        回复PHPzhong赞同05个月前

                        ci, 必须的。

                          Peter Zhu
                          回复Peter Zhu赞同05个月前

                          其实新手thinkphp上手快,文档多,只适合新手。。

                          但是貌似tp有一点点的问题

                            迷茫
                            回复迷茫赞同05个月前

                            Symfony是一定要学的,代表了PHP框架里最先进的设计思想,开发者靠谱,社区活跃,基于组件,低耦合,高重用;

                            Laravel和Drupal都是基于Symfony的;

                            新手不推荐C扩展的框架;

                              伊谢尔伦
                              回复伊谢尔伦赞同05个月前

                              微框架推荐Slim和Silex,后者更重量级些不过和Symfony的组件可以很好混用,前者基本可以视作Sinatra PHP版,也很赞,有个叫TextPress的开源的轻量级flat-file博客引擎就是用的它,可以作为不错的学习参考。
                              重量级的主要就是Zend Framework和Symfony吧,太复杂没玩过不置评。
                              近几年流行起来的值得一提的还有Laravel和Phalcon,前者是截至目前GitHub上星数最多的PHP框架,很好上手,后者是性能第二高的PHP框架,几乎全部的功能都用C实现,第一高的是Yaf不过Yaf的代码风格是PHP 5.3以前的,不够现代化,功能也比Phalcon少……
                              此外还有国产的ThinkPHP,对各类国内PaaS运行环境如ACE,BAE,SAE进行了优化,而且中文文档完善,也是不错的选择。

                                Ty80
                                回复Ty80赞同05个月前

                                你们说的框架性能是怎么测出来的,就写一个hello,world就算测试过了吗?
                                不过不推荐Laravel这框架,推荐Phalcon这个框架,谁用谁知道

                                  Ty80
                                  回复Ty80赞同05个月前

                                  我的建议是:
                                  要是个人业余时间玩玩,三个框架,做个简单的用户登录,或留言板,那个顺手用那个。别人在多的建议也代替不了你个人的主观感受。自己尝试为主。
                                  要是上班以此为饭碗,我建议三个都学一学,从一个长远的打算来看,每个公司的策略与技术历史不一样,所以都了解一下,而且框架都有很大的相似性,就我个人了解,ci与tp其实是很像,只是一个抓住了国人目前的技术心理,更方便,更傻瓜一点而已。或者目前在上班公司用那个就学那个,业余自己折腾在多的东西,不如在公司跟同事们一起奋斗需求变化万千的实际项目。

                                    小葫芦
                                    回复小葫芦赞同05个月前

                                    用laravel写了些东西,感觉还是不错的。

                                      大家讲道理
                                      回复大家讲道理赞同05个月前

                                      推荐YAF框架

                                        阿神
                                        回复阿神赞同05个月前

                                        我只用过Yii 所以只能推荐它了
                                        Yii学习曲线比较陡 自学入门时比较难 掌握了就好了 开发很快的
                                        (我本来想赞同那些回答Yii的,但是声望不够

                                          猪哥
                                          回复猪哥赞同05个月前

                                          这个要看你学框架来做什么样的站点了

                                          个人喜欢边做项目边学东西,通过实践学来的东西比较实在,你可以先想一下自己打算做一个什么项目,项目周期多长。然后根据项目大小、周期和自己的能力来选择框架进行学习实践。

                                          Good Luck!

                                          PS. 这个是我用CI框架写的中国版Reddit -- 《91头条》

                                            巴扎黑
                                            回复巴扎黑赞同05个月前

                                            thinkPHP坑还是不少的,有设计失误,没人管,目前作者失踪,issue没人管.目前教程就thinkphp.cn这一个地方有,一本完整的书都没有,大牛可以用,初学者千万别用

                                              Ty80
                                              回复Ty80赞同05个月前

                                              选择yii你不会后悔,选择了tp你会后悔。

                                                Ty80
                                                回复Ty80赞同05个月前

                                                thinkphp 实用 挺好
                                                用 Laravel 高大上

                                                  伊谢尔伦
                                                  回复伊谢尔伦赞同05个月前

                                                  Laravel 你不会失望的

                                                    大家讲道理
                                                    回复大家讲道理赞同05个月前

                                                    只感觉Yii不错

                                                      猪哥
                                                      回复猪哥赞同05个月前

                                                      我推荐CI 或者 TP3.1.x。
                                                      用过TP 3.2.x TP3.1.x CI cakephp laravel。
                                                      一开始觉得CI太简陋,其实他扩展性最强大。TP 3.2问题真的很多。
                                                      TP 3.1.x也是一个不错的选择

                                                        猪哥
                                                        回复猪哥赞同05个月前

                                                        没人推荐YAF吗?新浪微博和百度贴吧都是用这个C语言写的PHP框架

                                                        http://www.laruence.com/manual/

                                                          PHPzhong
                                                          回复PHPzhong赞同05个月前
                                                            黄舟
                                                            回复黄舟赞同05个月前

                                                            我用thinkPHP

                                                              伊谢尔伦
                                                              回复伊谢尔伦赞同05个月前

                                                              推荐laravel

                                                                Peter Zhu
                                                                回复Peter Zhu赞同05个月前

                                                                laravel
                                                                必须推荐

                                                                  阿神
                                                                  回复阿神赞同05个月前

                                                                  PHP的框架都大同小异,个人觉得关键还是看项目的需求来选择框架。或者说你是要找一个框架来进行什么业务的开发,还是说是为了看框架的源码

                                                                    Ty80
                                                                    回复Ty80赞同05个月前

                                                                    强烈推荐学习laravel,你会发现在学习过程中,你会学习到框架之外的更多知识
                                                                    1.如何翻墙,因为composer的安装和使用在墙内的速度是令人发指的
                                                                    2.如何翻译,因为laravel的文档大部分是英文的,比如laravel5.1是6月发布的,直到今天10月19日,完全汉化的文档还是没有。
                                                                    3.如何撕逼,你要对面用TP的人的不理解,用Yaf的人的鄙视,用Yii的人的试探的目光
                                                                    4.如何运维,项目上线后,面对性能低下的问题你需要redis memcache opcache php7 hhvm 等等等优化性能的方案

                                                                      小葫芦
                                                                      回复小葫芦赞同05个月前

                                                                      https://github.com/lloydzhou/router
                                                                      可以看看,算不上框架,只是个路由控制器,很精炼

                                                                        Peter Zhu
                                                                        回复Peter Zhu赞同05个月前

                                                                        可以先熟悉一些微框架如slim,silex,之后可以重点看下symfony的组件

                                                                          迷茫
                                                                          回复迷茫赞同05个月前

                                                                          很简单,去招聘网站,把这些框架一输入,看哪个热门学哪个,这也算是一种趋势。
                                                                          ps:我公司用的是yii

                                                                            刘奇
                                                                            回复刘奇赞同05个月前

                                                                            Yii

                                                                              Peter Zhu
                                                                              回复Peter Zhu赞同05个月前

                                                                              第一个层次是PHP技术的深度学习:如PHP字符串、数组、文件和PHP的高级特性以及PHP运行原理等; 第二个层次是Web技术的深度拓展:如深入Http协议、Linux技术、Web服务器技术、前端JS技术、MySQL和NoSQL技术等;第三个层次是编程思想和能力的拓展:如数据结构和算法设计、设计模式、好代码的原则和技巧、大规模网站开发技术等。
                                                                              按照这个提纲学下去吧:http://www.sijiaomao.com/course.htm

                                                                                迷茫
                                                                                回复迷茫赞同05个月前

                                                                                个人强烈推荐学习 Symfony

                                                                                优点:
                                                                                1. 文档非常齐全
                                                                                2. 社区非常活跃
                                                                                3. 企业级的框架,适合项目从小到大不断迭代的各个阶段
                                                                                4. composer、自动化、命令行
                                                                                5. 命名空间,完全面向对象的设计
                                                                                6. 大量第三方包,加速开发进程
                                                                                7. 设计非常棒的生产环境和开发环境,开发环境下完善的异常提示
                                                                                8. 熟练后开发速度非常快,这个快不在于很快出一个demo,而在于能很快出一个完整的产品

                                                                                缺点:
                                                                                1. 具有较高的学习曲线,要花功夫去学会,新概念非常多,但学会后便是优势
                                                                                2. 性能相对较差,但是后期有大量方式去优化性能
                                                                                3. 还是学起来的时候会比较累,但是文档特别全,只要你肯花功夫就没有问题

                                                                                  Peter Zhu
                                                                                  回复Peter Zhu赞同05个月前

                                                                                  如果想短周期上手thinkphp ci

                                                                                  其他 laravel yii phalcon

                                                                                    大家讲道理
                                                                                    回复大家讲道理赞同05个月前

                                                                                    个人推荐:PhalconLaravel4


                                                                                    http://segmentfault.com/q/1010000000435088

                                                                                      Ty80
                                                                                      回复Ty80赞同05个月前

                                                                                      生命苦短,我用Slim

                                                                                      理由?因为Slim不用学,开箱即用

                                                                                        迷茫
                                                                                        回复迷茫赞同05个月前

                                                                                        看下 Github 最受欢迎的 PHP 开源项目, 跟着大家走, 准没错 https://github.com/search?l=PHP&q=+stars%3A%3E0&ref=searchresults&type=Repositories

                                                                                          刘奇
                                                                                          回复刘奇赞同05个月前

                                                                                          强烈推荐:Phalcon, CI

                                                                                          Laravel重的一塌糊涂、向后兼容性差不说,代码风格方面还用tab来缩进!在当今这个4空格(PSR,PEAR,ZEND)甚至是2空格(Langspec)缩进的世界中,可谓逆水行舟,作者本人的信誉也有问题,Phil多次劝过他遵循PSR,作者答应了,FIG上也有了,却一直不改...更遑论其鼓吹的“优雅”和“性能超CI”了。

                                                                                          Laravel的可借鉴之处例如:IoC,DI,eloquent,Artisan这些Phalcon全都有,性能还更好(能比这个框架快的PHP框架不多了,唯一能抗衡的是YAF吧,但YAF那社区,那文档,呵呵了)。

                                                                                          Codeigniter的3.0就快要stable了,对2.0中一些领人诟病的地方也做出了相当大的改进(例如原生支持composer,高度兼容HHVM等),而且CI的快速部署、易于拓展、接近原生语法(学了就知道多么人性,多么简洁)的特性也使得它老当益壮,一些比较不错的第三方库更新频繁,其衍生框架Bonfire也是生机勃勃。

                                                                                          CI的主要缺点是:

                                                                                          1. 缺少IoC/DI/ORM
                                                                                          2. 缺少命名空间(其实我在用laravel的1年时间里也没见多少项目有贯彻通透的)
                                                                                          3. 使用了单例模式(该模式已经considered an anti-pattern!)

                                                                                          至于Yii/ZendFramework/CakePHP/Slim/Swole/Symfony/Swoole,这几个框架,由于我本人没有接触过,所以没有资格评论,但就印象而言,这几个框架实在是让我打不起兴趣学习。

                                                                                            ringa_lee
                                                                                            回复ringa_lee赞同05个月前

                                                                                            选择 PHP 框架,必须得看看 FIG 了:http://www.php-fig.org/

                                                                                            FIG 是 Framework Interoperability Group(框架可互用性小组)的缩写,由几位开源框架的开发者成立于 2009 年,从那开始也选取了很多其他成员进来,虽然不是 “官方” 组织,但也代表了社区中不小的一块。

                                                                                            组织的目的在于:以最低程度的限制,来统一各个项目的编码规范,避免各家自行发展的风格阻碍了程序设计师开发的困扰。有四套规范:

                                                                                            • PSR-0 (Autoloading Standard) 自动加载标准
                                                                                            • PSR-1 (Basic Coding Standard) 基础编码标准
                                                                                            • PSR-2 (Coding Style Guide) 编码风格向导
                                                                                            • PSR-3 (Logger Interface) 日志接口

                                                                                            本来我一直使用的是 ci 和 zend,不过正如 @shamiao 大大所说推荐的,我也正在变成一名 laravel 的粉丝。

                                                                                            前几天使用 esoTalk 搭了一个轻论坛 http://bbs.justjavac.com

                                                                                            论坛新地址:http://discuss.flarum.org.cn/

                                                                                            不过作者发 twitter 表示将开发 Flarum 替代 esoTalk。理由是 esoTalk 底层代码不够强大,那么新的 Flarum 系统呢,底层使用了 laravel 框架。


                                                                                            几周前,还有人对 toby 大大卖萌 http://discuss.flarum.org.cn/13-esotalk-toby