相違点: 1. Yii2.0 は Composer を完全に採用していますが、yii1.1 は採用していません; 2. Yii2.0 のほぼすべてのコアクラスに名前空間が導入されており、バージョン 1.1 のクラス名のプレフィックス「C」は no です。より長く使用する; 3. Yii2.0 は 1.1 の CComponent クラスを 2 つのクラスに分割します。
フレームワークの 2.0 バージョンは完全に書き直されたもので、1.1 バージョンと 2.0 バージョンの間にはかなりの違いがあります。したがって、バージョン 1.1 からのアップグレードは、マイナー バージョン間を移動するほど簡単ではありませんが、このガイドを読めば、2 つのバージョン間の主な違いを理解できるようになります。
インストール
Yii 2.0 は、事実上の PHP 依存関係管理ツールである Composer を完全に採用しています。コア フレームワークと拡張機能のインストールは、Composer を通じて処理されます。
PHP 要件
Yii 2.0 には PHP 5.4 以降が必要です。これは、Yii 1.1 で必要とされた PHP 5.2 に比べて大幅に改善されています。したがって、言語レベルでは顕著な違いがたくさんあります。 PHP 層への主な変更の概要は次のとおりです:
名前空間
匿名関数
Array 短い構文 [...element...] は、ビュー ファイル内の短い形式のエコー タグ = を置き換えるために使用されます。PHP 5.4 以降では、その構文が何であっても、常に認識され、正当になります。 short_open_tag の設定により、安全に使用できます。
SPL クラスとインターフェイス
遅延静的バインディング
日付と時刻
Traits
intl Yii 2.0 は、PHP 拡張子 intl を使用して国際化関連関数をサポートします。
Yii 2.0 での最も明らかな変更は、ネームスペースの使用です。ほとんどすべてのコアクラスは、yii\web\Request などの名前空間を導入します。バージョン 1.1 のクラス名プレフィックス「C」は使用されなくなりました。
(推奨学習:
) 現在の命名スキームはディレクトリ構造と一致しています。たとえば、 yii\web\Request は、対応するクラス ファイルが Yii フレームワーク フォルダー内の web/Request.php ファイルであることを示します。 Yii のクラス オートローダーを使用すると、特定のファイルを明示的に含めることなく、すべてのコア クラスを直接使用できます。
コンポーネントとオブジェクトYii 2.0 では、1.1 の CComponent クラスが 2 つのクラス [[yii\base\Object]] と [[yii\] に分割されています。ベース\コンポーネント]]。 [[yii\base\Object|Object]] クラスは軽量の基本クラスであり、ゲッターとセッターを通じてオブジェクトのプロパティを定義できます。
[[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()]] メソッドを使用する必要があります: 以上がyii1.1 と yii2.0 の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。$component->on($eventName, $handler);
// 解除事件处理器,使用 off 方法:
// $component->off($eventName, $handler);