溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

yii1.1和yii2.0有哪些區(qū)別

發(fā)布時(shí)間:2021-01-05 14:39:11 來(lái)源:億速云 閱讀:177 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹yii1.1和yii2.0有哪些區(qū)別,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

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

2.0 版框架是完全重寫的,在 1.1 和 2.0 兩個(gè)版本之間存在相當(dāng)多差異。因此從 1.1 版升級(jí)并不像小版本間的跨越那么簡(jiǎn)單,通過(guò)本指南你將會(huì)了解兩個(gè)版本間主要的不同之處。

安裝

Yii 2.0 完全擁抱 Composer,它是事實(shí)上的 PHP 依賴管理工具。核心框架以及擴(kuò)展的安裝都通過(guò) Composer 來(lái)處理。

PHP 需求

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

  • 命名空間

  • 匿名函數(shù)

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

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

  • SPL 類和接口

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

  • 日期和時(shí)間

  • Traits

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

命名空間

Yii 2.0 里最明顯的改動(dòng)就數(shù)命名空間的使用了。幾乎每一個(gè)核心類都引入了命名空間,比如 yii\web\Request。1.1 版類名前綴 “C” 已經(jīng)不再使用。  

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

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

組件(Component)與對(duì)象(Object)

Yii 2.0 把 1.1 中的 CComponent 類拆分成了兩個(gè)類:[[yii\base\Object]] 和 [[yii\base\Component]]。[[yii\base\Object|Object]] 類是一個(gè)輕量級(jí)的基類,你可以通過(guò) getters 和 setters 來(lái)定義對(duì)象的屬性。

[[yii\base\Component|Component]] 類繼承自 [[yii\base\Object|Object]],同時(shí)進(jìn)一步支持 事件 和 行為。

事件(Event)

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

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

要給事件附加一個(gè)事件事件處理器,需要使用 [[yii\base\Component::on()|on()]] 方法:

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

以上是“yii1.1和yii2.0有哪些區(qū)別”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI