yii1.1和yii2.0的區(qū)別是什么

區(qū)別:1、Yii2.0完全擁抱Composer,yii1.1沒有;2、Yii2.0幾乎每一個核心類都引入了命名空間,且1.1版類名前綴 “C” 已經(jīng)不再使用;3、Yii2.0把1.1中的CComponent類拆分成了兩個類。

yii1.1和yii2.0的區(qū)別是什么

2.0 版框架是完全重寫的,在 1.1 和 2.0 兩個版本之間存在相當多差異。因此從 1.1 版升級并不像小版本間的跨越那么簡單,通過本指南你將會了解兩個版本間主要的不同之處。

安裝

Yii 2.0 完全擁抱 Composer,它是事實上的 PHP 依賴管理工具。核心框架以及擴展的安裝都通過 Composer 來處理。

PHP 需求

Yii 2.0 需要 PHP 5.4 或更高版本,該版本相對于 Yii 1.1 所需求的 PHP 5.2 而言有巨大的改進。因此在語言層面上有很多的值得注意的不同之處。下面是 PHP 層的主要變化匯總:

  • 命名空間

  • 匿名函數(shù)

  • 數(shù)組短語法 […元素…] 用于取代 array(…元素…)

  • 視圖文件中的短格式 echo 標簽 =,自 PHP 5.4 起總會被識別并且合法,無論 short_open_tag 的設(shè)置是什么,可以安全使用。

  • SPL 類和接口

  • 延遲靜態(tài)綁定

  • 日期和時間

  • Traits

  • intl Yii 2.0 使用 PHP 擴展 intl 來支持國際化的相關(guān)功能。

命名空間

Yii 2.0 里最明顯的改動就數(shù)命名空間的使用了。幾乎每一個核心類都引入了命名空間,比如 yiiwebRequest。1.1 版類名前綴 “C” 已經(jīng)不再使用。? ?(推薦學習:yii教程

當前的命名方案與目錄結(jié)構(gòu)相吻合。例如,yiiwebRequest 就表明對應的類文件是 Yii 框架文件夾下的 web/Request.php 文件。

有了 Yii 的類自動加載器,你可以直接使用全部核心類而不需要顯式包含具體文件。

組件(Component)與對象(Object)

Yii 2.0 把 1.1 中的 CComponent 類拆分成了兩個類:[[yiibaseObject]] 和 [[yiibaseComponent]]。[[yiibaseObject|Object]] 類是一個輕量級的基類,你可以通過 getters 和 setters 來定義對象的屬性。

[[yiibaseComponent|Component]] 類繼承自 [[yiibaseObject|Object]],同時進一步支持 事件 和 行為。

事件(Event)

在 Yii 1 中,通常通過定義 on 開頭的方法(例如 onBeforeSave)來創(chuàng)建事件。而在 Yii 2 中,你可以使用任意的事件名了。同時通過調(diào)用 [[yiibaseComponent::trigger()|trigger()]] 方法來觸發(fā)相關(guān)事件:

$event?=?new?yiibaseEvent; $component->trigger($eventName,?$event);

要給事件附加一個事件事件處理器,需要使用 [[yiibaseComponent::on()|on()]] 方法:

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

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊5 分享