使用Yii1.1与Yii2.0有哪些关键差异?

2026-05-08 02:232阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计711个文字,预计阅读时间需要3分钟。

使用Yii1.1与Yii2.0有哪些关键差异?

相关主题

安装

Yii 2.0 完全拥抱 Composer,它是事实上的 PHP 依赖管理工具。核心框架以及扩展的安装都通过 Composer 来处理。

PHP 需求

Yii 2.0 需要 PHP 5.4 或更高版本,该版本相对于 Yii 1.1 所需求的 PHP 5.2 而言有巨大的改进。因此在语言层面上有很多的值得注意的不同之处。下面是 PHP 层的主要变化汇总:

  • 命名空间

  • 匿名函数

  • 数组短语法 [...元素...] 用于取代 array(...元素...)

  • 视图文件中的短格式 echo 标签 <?=,自 PHP 5.4 起总会被识别并且合法,无论 short_open_tag 的设置是什么,可以安全使用。

  • SPL 类和接口

  • 延迟静态绑定

  • 日期和时间

  • Traits

  • intl Yii 2.0 使用 PHP 扩展 intl 来支持国际化的相关功能。

命名空间

Yii 2.0 里最明显的改动就数命名空间的使用了。几乎每一个核心类都引入了命名空间,比如 yii\web\Request。1.1 版类名前缀 “C” 已经不再使用。   (推荐学习:yii教程)

当前的命名方案与目录结构相吻合。例如,yii\web\Request 就表明对应的类文件是 Yii 框架文件夹下的 web/Request.php 文件。

有了 Yii 的类自动加载器,你可以直接使用全部核心类而不需要显式包含具体文件。

组件(Component)与对象(Object)

Yii 2.0 把 1.1 中的 CComponent 类拆分成了两个类:[[yii\base\Object]] 和 [[yii\base\Component]]。[[yii\base\Object|Object]] 类是一个轻量级的基类,你可以通过 getters 和 setters 来定义对象的属性。

[[yii\base\Component|Component]] 类继承自 [[yii\base\Object|Object]],同时进一步支持 事件 和 行为。

事件(Event)

在 Yii 1 中,通常通过定义 on 开头的方法(例如 onBeforeSave)来创建事件。而在 Yii 2 中,你可以使用任意的事件名了。同时通过调用 [[yii\base\Component::trigger()|trigger()]] 方法来触发相关事件:

$event = new \yii\base\Event; $component->trigger($eventName, $event);

要给事件附加一个事件事件处理器,需要使用 [[yii\base\Component::on()|on()]] 方法:

$component->on($eventName, $handler); // 解除事件处理器,使用 off 方法: // $component->off($eventName, $handler);

标签:Yii

本文共计711个文字,预计阅读时间需要3分钟。

使用Yii1.1与Yii2.0有哪些关键差异?

相关主题

安装

Yii 2.0 完全拥抱 Composer,它是事实上的 PHP 依赖管理工具。核心框架以及扩展的安装都通过 Composer 来处理。

PHP 需求

Yii 2.0 需要 PHP 5.4 或更高版本,该版本相对于 Yii 1.1 所需求的 PHP 5.2 而言有巨大的改进。因此在语言层面上有很多的值得注意的不同之处。下面是 PHP 层的主要变化汇总:

  • 命名空间

  • 匿名函数

  • 数组短语法 [...元素...] 用于取代 array(...元素...)

  • 视图文件中的短格式 echo 标签 <?=,自 PHP 5.4 起总会被识别并且合法,无论 short_open_tag 的设置是什么,可以安全使用。

  • SPL 类和接口

  • 延迟静态绑定

  • 日期和时间

  • Traits

  • intl Yii 2.0 使用 PHP 扩展 intl 来支持国际化的相关功能。

命名空间

Yii 2.0 里最明显的改动就数命名空间的使用了。几乎每一个核心类都引入了命名空间,比如 yii\web\Request。1.1 版类名前缀 “C” 已经不再使用。   (推荐学习:yii教程)

当前的命名方案与目录结构相吻合。例如,yii\web\Request 就表明对应的类文件是 Yii 框架文件夹下的 web/Request.php 文件。

有了 Yii 的类自动加载器,你可以直接使用全部核心类而不需要显式包含具体文件。

组件(Component)与对象(Object)

Yii 2.0 把 1.1 中的 CComponent 类拆分成了两个类:[[yii\base\Object]] 和 [[yii\base\Component]]。[[yii\base\Object|Object]] 类是一个轻量级的基类,你可以通过 getters 和 setters 来定义对象的属性。

[[yii\base\Component|Component]] 类继承自 [[yii\base\Object|Object]],同时进一步支持 事件 和 行为。

事件(Event)

在 Yii 1 中,通常通过定义 on 开头的方法(例如 onBeforeSave)来创建事件。而在 Yii 2 中,你可以使用任意的事件名了。同时通过调用 [[yii\base\Component::trigger()|trigger()]] 方法来触发相关事件:

$event = new \yii\base\Event; $component->trigger($eventName, $event);

要给事件附加一个事件事件处理器,需要使用 [[yii\base\Component::on()|on()]] 方法:

$component->on($eventName, $handler); // 解除事件处理器,使用 off 方法: // $component->off($eventName, $handler);

标签:Yii