yii2和laravel比较

一、总结

一句话总结:

开发速度两者相当:laravel的artisan工具和yii的gii有异曲同工的效果,借助于artisan工具,可以快速创建控制器、模型和路由等。
代码的可读性Yii略胜一筹:laravel有点设计过度,laravel的facade模式让阅读vendor下的源代码有点坑,不少类在IDE里不借助第三方组件是无法跳转阅读源码的。
开源生态圈方面lavarel优:laravel社区比较活跃,资源比较丰富,一些第三方的工具都能在github上找到

1、Yii 当前有两个主要版本:1.1 和 2.0 介绍?

1.1 版是上代的老版本,现在处于维护状态。
2.0 版是一个完全重写的版本,采用了最新的技术和协议,包括依赖包管理器 Composer、PHP 代码规范 PSR、命名空间、Traits等等。

2、设计模式如何进阶学习?

可以直接看lavarel或者yii的源码,里面用了很多设计模式

3、Yii和lavarel框架总结?

yii的优势是非常良好的扩展性和极其稳定的性能,
laravel的优势是比较好写出工整便于维护的的代码,这源自于其卓越的设计模式,天生为大型项目而生

二、yii2和laravel哪个框架代表着PHP的未来?

参考:yii2和laravel哪个框架代表着PHP的未来?-程序员-梁巨才个人博客
https://www.liangjucai.com/article/329

yii2是美籍华人薛强开发的高性能,基于组件的 PHP 框架,用于快速开发现代 Web 应用程序。Yii 当前有两个主要版本:1.1 和 2.0。 1.1 版是上代的老版本,现在处于维护状态。2.0 版是一个完全重写的版本,采用了最新的技术和协议,包括依赖包管理器 Composer、PHP 代码规范 PSR、命名空间、Traits等等。 2.0 版代表新一代框架,以下写到yii也是专指yii2.0。

laravel号称是为WEB艺术家创造的简洁、优雅的PHP开发框架,它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。

1、从开发速度方面比较,借助于gii脚手架,可以快速生成代码,也就是说搭建一个可以增删改查的系统可能一行代码都不用写,而且集成了jquery和bootstrap,特效和样式基本也不需要写了,这对于设计和审美能力普遍较差的后端程序员来说简直是一大福利。而laravel的artisan工具和yii的gii有异曲同工的效果,借助于artisan工具,可以快速创建控制器、模型和路由等。这点上yii和laravel各有千秋,不分上下。不过在前后端完全的分离的趋势下,yii2前后端的耦合的还是有些重了。

2、从代码的可读性方面比较,yii不会为了刻板地遵照某种设计模式而对代码进行过度的设计。而反观laravel有点设计过度,laravel的facade模式让阅读vendor下的源代码有点坑,不少类在IDE里不借助第三方组件是无法跳转阅读源码的。这点上yii要比laravel略胜一筹。

3、从开源生态圈方面比较,laravel社区比较活跃,资源比较丰富,一些第三方的工具都能在github上找到,而Yii因为人少,稍微偏门一点的就少,这点上laravel要比yii略胜一筹。

总体而言,yii和laravel目前来看,都是php最好的框架,yii的优势是非常良好的扩展性和极其稳定的性能,laravel的优势是比较好写出工整便于维护的的代码,这源自于其卓越的设计模式,天生为大型项目而生。具体用哪个框架看团队、公司的需求~

 

yii2和laravel比较的更多相关文章

  1. composer安装yii2或者laravel报错

    大概的信息就是提示让登陆github,然后就报错了 Could not fetch https://api.github.com/authorizations, enter your GitHub c ...

  2. tp5, laravel, yii2我该选择哪个

    为什么写这篇文章 我个人有一个技术群,里面学什么框架的都有,经常会有人问 某某功能 在 哪个框架怎么实现,用什么框架实现更好,说道这里我大家讲一个同类型问题的笑话 某女:你能让这个论坛的人都吵起来,我 ...

  3. composer php依赖管理工具

    #composer是什么 Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们. composer出现之前我们php项目依赖管理大部分都是手动 ...

  4. 七大php主流框架,你用过几个?

    在php中,我们最常用的框架有七个,分别是Yii2.Laravel.Yaf.Thinkphp.Code Igniter.Zend Framework以及CakePHP,今天我们就来详细介绍一下他们.一 ...

  5. 【转】PHP框架性能测试报告 - ThinkPHP 3.2.3 Laravel 5.2 Yii2.0.5

    作为一个PHP开发者,而且是初创企业团队的技术开发者,选择开发框架是个很艰难的事情. 用ThinkPHP的话,招聘一个刚从培训机构出来的开发者就可以上手了,但是性能和后期代码解耦是个让人头疼的事情.不 ...

  6. 【nginx,apache】thinkphp ,laravel,yii2开发运行环境搭建

    缘由 经常会有人问xx框架怎么配置运行环境,这里我就给贴出吉祥三宝(Yii2,Laravel5,Thinkphp5 )的Nginx和Apache的配置,供大家参考 Nginx Yii2 server  ...

  7. PHP框架(如:laravel、yii2、thinkPHP5)中统一异常处理及统一日志打印

    背景: 现在写接口服务应用有一个很通用的需求,想通过日志.或者监控的形式监测的接口的运行情况,比如耗时.请求参数.响应结果.和前端联调接口时或者排查线上问题时日志必不可少,特别是现场日志. 应用运行时 ...

  8. laravel安装学习步骤

    在看知乎比较php框架的优劣的时候提到为什么laravel这么好国内用的少,还有就是yii2,有人提到原因就是composer在国内无法使用.这制约了使用composer进行包管理的框架在国内的传播和 ...

  9. 我 && yii2 (路由优化)

    今天配置了一下yii2 的路由,用 /index.php?r=... 这样的路由,实在是不太习惯,所以我便试着把yii2 的路由,写成laravel 那般,以下为详情 1.环境介绍 lnmp php5 ...

随机推荐

  1. Vue自定义事件:触发自定义事件

    一 项目结构 二 子组件(Mongo.vue) <template> <button @click="eat">按钮</button> < ...

  2. 牛顿法求极值及其Python实现

    最初对于牛顿法,我本人是一脸懵的.其基本原理来源于高中知识.在如下图所示的曲线,我们需要求的是f(x)的极值: 对于懵的原因,是忘记了高中所学的点斜式,直接贴一张高中数学讲义: 因为我们一路沿着x轴去 ...

  3. python中进程池和回调函数

    一.数据共享 1.进程间的通信应该尽量避免共享数据的方式 2.进程间的数据是独立的,可以借助队列或管道实现通信,二者都是基于消息传递的. 虽然进程间数据独立,但可以用过Manager实现数据共享,事实 ...

  4. 牛逼哄哄的 API 网关是什么鬼?面试必问!

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 作者:aCoder2013 github.com/aCoder2013/blog/issues/35 前言 假设你正在开发一 ...

  5. Java arraylist重复使用问题

    arraylist同一个实例重复使用时,需要使用clear()及时清空,否则会在上次的结果后面添加项. List<Double> weightsList = new ArrayList&l ...

  6. jar包 war包

    jar包和war包的区别: war是一个web模块,其中需要包括WEB-INF,是可以直接运行的WEB模块.而jar一般只是包括一些class文件,在声明了Main_class之后是可以用java命令 ...

  7. 合并石子 (区间dp+前缀和)

    [题目描述] N堆石子.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分.计算出将N堆石子合并成一堆的最小得分. [题目链接] http: ...

  8. uploadify多图片和文件上传网站应用

    先要下载压缩包 www.uploadify.com/wp-content/uploads/files/uploadify.zip 1,模板文件引用 <!--引用jquery uploady*}- ...

  9. js 柯里化、深拷贝、浅拷贝

    curry const sum = (a, b, c, d) => a + b + c + d const curry = fn => (judge = (...args) => a ...

  10. 使用js实现图片轮滑效果

    经常在购物网站,看到那种图片轮滑的效果,所以看到有人实现了,所以我也就学习下了. 首先贴出html代码: <!DOCTYPE html> <html lang="en&qu ...