yii1和yii2的区别有哪些?

发布时间 - 2019-12-23 00:00:00    点击率:

yii是一个高性能的php5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。

Yii2.0 版框架是完全重写的,在 1.1 和 2.0 两个版本之间存在相当多差异。【推荐学习:Yii入门教程】

那么yii1和yii2的区别有哪些?

Yii 2.0 需要 PHP 5.4 或更高版本,该版本相对于 Yii 1.1 所需求的 PHP 5.2 而言有巨大的改进。

1、应用程序实例直接使用全局命名变量来访问:$app,而无须调用app()。

2、Yii2在视图层的一个显著改变是引入了视图类,这样在MVC模式实现上更为完整。相应的,相关展现层附属类就由新的视图类来接手管理,比如theme:Yii::app()->theme->baseUrl 应该更新为 Yii::$app->view->theme->baseUrl,或者$this->theme->baseUrl。

3、Yii2引入了资源包的概念,资源引用的方式变化较大。

有两种方式引入资源,一种是通过assets目录下的AppAsset类,还有就是通过类似Yii1种的注册方法。

Yii::app()->getClientScript()方法不再可用,比如想要在页面中动态注册JS脚本文件,变动如下:

Yii::app()->getClientScript()->registerScriptFile('...') 修改为 Yii::$app->view->registerJsFile('...'),

或者$this->registerJsFile('...')。

4、使用数据库

比如查询知道user_id的一条记录记录

yii1:

User::model()->find('user_id=:user_id',[':user_id'=>$user_id]);

yii2:

User::find()->where('user_id=:user_id',[':user_id'=>$user_id])->one();

查询多条记录:

yii1:

User::model()->findAll('status=:status',[':staus'=>$status]);

yii2:

User::find()->where('status=:status',[':staus'=>$status])->all();

另外yii2 还提供了 asArray() 方法,直接查询结果为数组:

User::find()->where('status=:status',[':staus'=>$status])->asArray()->all();

如果是初学者的话,建议直接学习yii2。


# yii  # 应用程序  # 是一个  # 基础上  # 要在  # 引入了  # 重写  # 有两种  # 相对于  # 高性能  # 查询结果 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 用v-html解决Vue.js渲染中html标签不被解析的问题  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  如何快速查询域名建站关键信息?  如何解决hover在ie6中的兼容性问题  Laravel用户密码怎么加密_Laravel Hash门面使用教程  独立制作一个网站多少钱,建立网站需要花多少钱?  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  如何用AWS免费套餐快速搭建高效网站?  ,怎么在广州志愿者网站注册?  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  制作企业网站建设方案,怎样建设一个公司网站?  南京网站制作费用,南京远驱官方网站?  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  魔毅自助建站系统:模板定制与SEO优化一键生成指南  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  如何利用DOS批处理实现定时关机操作详解  iOS正则表达式验证手机号、邮箱、身份证号等  七夕网站制作视频,七夕大促活动怎么报名?  Python函数文档自动校验_规范解析【教程】  JS碰撞运动实现方法详解  什么是javascript作用域_全局和局部作用域有什么区别?  如何制作一个表白网站视频,关于勇敢表白的小标题?  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  Android自定义控件实现温度旋转按钮效果  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  javascript中对象的定义、使用以及对象和原型链操作小结  网易LOFTER官网链接 老福特网页版登录地址  微信推文制作网站有哪些,怎么做微信推文,急?  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  如何在建站之星网店版论坛获取技术支持?  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  PythonWeb开发入门教程_Flask快速构建Web应用  JavaScript中的标签模板是什么_它如何扩展字符串功能  如何快速上传自定义模板至建站之星?  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  北京网站制作公司哪家好一点,北京租房网站有哪些?  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  网站建设整体流程解析,建站其实很容易!  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  Laravel怎么在Controller之外的地方验证数据  C++用Dijkstra(迪杰斯特拉)算法求最短路径  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  如何在宝塔面板中修改默认建站目录?  长沙企业网站制作哪家好,长沙水业集团官方网站?  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  javascript中的try catch异常捕获机制用法分析