Yii1.1应用升级到Yii2.0的一些注意点

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(‘...‘)。

而注冊(核心)资源包,使用AppAsset::register($this),当中$this指向当前视图上下文。或者例如以下:

class AppAsset extends AssetBundle
{
    public $basePath = ‘@webroot‘;
    public $baseUrl = ‘@web‘;
    public $css = [
        ‘css/site.css‘,
    ];
    public $js = [
    ];
    public $depends = [
        ‘yii\web\YiiAsset‘,
    ];
}

当中 YiiAsset 就是Yii的核心资源包。通过$depends声明应用程序资源依赖关系来注冊该资源包。自己定义资源包方法相似。

详尽的升级指南參阅Yii2中文指南“从Yii1升级部分”:

http://yii2.techbrood.com/guide-upgrade-from-v1.html

by iefreer

时间: 2024-09-30 04:25:57

Yii1.1应用升级到Yii2.0的一些注意点的相关文章

PHP框架Yii2.0安装(基础版、高级版)

最近农成也是切入了yiiframework 2.0,就是安装yii2.0就花费了不少的时间,为此做了很多的弯路,特此写一篇博文来给后面学习的同学少走一点的弯路.写的不好的地方欢迎各位学习的同学们能够指点出来. yii2.0的安装,官方提供了两种的安装办法,一种是通过composer来安装,另外一种是通过跟yii1.0的办法直接下载安装包来安装.至于对于第一种composer的安装,农成就不做多余的说明了,这里有很好的安装教程.点击进去就可以看到了,为此农成就不在说了,下面就给大家详细讲讲第二种通

Yii2.0论坛实例教程

Yii2.0现在已经出来Beta了,Yii2.0总的来说和Yii1.x还是相差挺大的.现在的教程大部分都还是1.x的,所以这论坛就作为Yii2.0的一个入门实例吧.我也会尽量把Yii2.0的各个新特性以及开发中的技巧一一列出来.如果哪位有兴趣可以一起交流一起来完成.功能列表:http://www.yiifans.com/forum.php?mod=viewthread&tid=68Git地址:https://github.com/yiifans/yiiforum另外,一般情况下会在每天早上提交一

在beforeAction里redirect无效,Yii2.0.8

我是在官方GitHub上得到回答,试了一下,确实解决问题了.之前的问题描述: 之前是2.0.3,然后用composer直接升级到2.0.8,就不正常了,以为是我代码的问题,于是再次尝试 用composer下载了yii-advance-2.0.8 ,在beforeAction里跳转还是不行,于是上论坛问问 放在普通的action里就没有问题,但是放在beforeAction里就是不跳转,相当于返回的是true,直接略过. 不跳转代码: return $this->redirect('http://

Yii2.0中Yii::$app与Yii 1.0中Yii:app()的理解

一直不明白Yii::$app与Yii::app(),查找yii框架源码后如下记录分享 (1)在Yii1.0中Yii::app()返回的是你在index.php里创建的CWebApplication实例,在对应的CWebApplication,入口文件: Yii::createWebApplication($configFile)->run(); 对应的类中查找: public static function createWebApplication($config=null){return se

YII2.0.12兼容PHP7.2版本升级

YII2.0.12兼容PHP7.2版本升级 报错信息: FastCGI sent in stderr: "PHP message: PHP Fatal error:  Cannot use ‘Object‘ as class name as it is reserved in /home/leo/htdocs/oa/vendor/yiisoft/yii2/base/Object.php on line 77 这个错误是yii2框架的错误了.也就是说不能使用Object作为类名. 解决方法 1.c

Yii2.0实用功能技巧解密之——分页功能

Yii中的分页功能主要由yii\web: Linkable接口.yii\widgets: LinkPager类和yii\data: Pagination类三个组成. yii\data: Pagination 主要功能是对分页中的参数进行设置,如当前页.每页大小.总页数,总记录数等. yii\widgets: LinkPager 主要是根据yii\data: Pagination类所提供的参数生成前台页面的分页html代码. 使用:先在action里面生成分页对象,然后在前台的LinkPager中

BUG YII2.0 $ is not defined

BUG描述:$ is not defined 没有加载jquery成功 原因:Yii2.0将JS代码默认加载页面加载后 解决方案: 第一种方案:最简单方法是在 assets\AppAsset.php 中加上,页面前加载 public $jsOptions = array( 'position' => \yii\web\View::POS_HEAD ); 第二种方案:But in production you usually want the scripts to load last, and i

[moka同学笔记]三、Yii2.0课程笔记(魏曦老师教程)

关联字段增加搜索 post表关联adminuser表,通过post.author_id  adminuser.id关联,在YII2.0生成搜索,关联字段搜索时,需要输入关联字段author的id才能搜索,这不符合我们的要求,我们要求输入作者名就可以搜索出来,该作者对应的post.

Yii2.0中文开发向导——高级应用程序模板

高级应用程序模板这个模板用在大型的团队开发项目中,而且后台从前台独立分离出来以便于部署在多个服务器中.由于YIi2.0的一些新的特性,这个程序模板的功能要更深一点.提供了基本的数据库的支持,注册.密码找回等功能.安装可以通过Composer来安装如果没有安装Composer,先安装 curl -s http://getcomposer.org/installer | php 然后用如下命令来获取 php composer.phar create-project --prefer-dist --s