首頁  >  文章  >  php框架  >  yii1.1和yii2.0的差別是什麼

yii1.1和yii2.0的差別是什麼

(*-*)浩
(*-*)浩原創
2019-11-04 13:10:362985瀏覽

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

yii1.1和yii2.0的差別是什麼

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 層的主要變化匯總:

  • #命名空間

  • #匿名函數

  • ##數組短語法[...元素...] 用於取代array(...元素...)

  • 視圖檔案中的短格式echo 標籤

  • 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);

以上是yii1.1和yii2.0的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn