yii 1.1.x と比較した yii 2 の利点と変更点は何ですか?選ぶときに何に注意すればいいですか?
この章では、Yii 2.0 で導入された主な変更点をリストします。 バージョン 1.1 以降、このリストが皆さんにとってより簡単になることを願っています。 Yii 1.1 からアップグレードし、既存のベースに基づいて Yii 2.0 をすぐにマスターします Yii の知識。
この章では、バージョン 1.1 以降の Yii 2.0 の主な変更点をリストします。
Yii 2.0 での最も明らかな変更は、ほぼすべてのコアクラスが名前空間を使用していることです (例: yiiwebRequest)。クラス名では使用されなくなりました。たとえば、yiiwebRequest は、対応するクラス ファイルが web/Request.php であることを示します。 Yii フレームワークフォルダーの下では、任意のコアクラスを使用できます。 Yii クラスローダーのおかげで、そのクラスファイルを明示的にインクルードします。
Yii 2.0 での最も明らかな変更は、ネームスペースの使用です。ほとんどすべてのコアクラスは、yiiwebRequest などの名前空間を使用します。同時に、クラス名の前に「C」接頭辞が使用されなくなりました。ネームスペースの命名はディレクトリ構造に従います。たとえば、yiiwebRequest で表される対応するクラス ファイルは、Yii フレームワークのディレクトリにある web/Request.php です。 Yii のクラスロードメカニズムのおかげで、クラスファイルを明示的にインクルードしなくても、任意のコアクラスを使用できます。
Yii 2.0 は 1.1 の CComponent クラスを 2 つに分割します クラス: [[yiibaseObject]] および [[yiibaseComponent]]。 [[yiibaseObject|Object]] クラスは、次のことを可能にする軽量の基本クラスです。 ゲッターとセッターを介してクラスのプロパティを定義します。 [[yiibaseComponent|Component]] クラスはから拡張されます [[yiibaseObject|Object]] はイベント機能と
Yii 2.0 では、バージョン 1.1 の CComponent クラスが 2 つのクラス [[yiibaseObject]] と 2 つに分割されています。 [[yiibaseComponent]]。このうち [[yiibaseObject|Object]] クラスはゲッターを使用する軽量の基本クラスです。 セッターはクラスのプロパティを定義するためのメソッドを提供します。 [[yiibaseComponent|Component]] は [[yii] から継承します baseObject|Object]] であり、イベントと動作のサポートを提供します。
クラスにイベントまたは動作機能が必要ない場合は、基本クラスとして Object を使用することを検討する必要があります。これは通常、基本的なデータ構造を表すクラスの場合です。
カスタム クラスがイベントや動作特性を必要としない場合は、基本クラスとして Object を使用することを検討してください。これは通常、基礎となるデータ構造を表すために使用されます。
[[yiibaseObject|Object]] クラスは、 [[yiibaseObject|Object]] の子孫クラス。 次の方法でコンストラクターを (必要に応じて) 宣言する必要があります。 適切に設定できます:
[[yiibaseObject|Object]] は、設定オブジェクトの標準化されたメソッドを導入します。必要に応じて、その子孫クラスで次の方法でコンストラクターを宣言すると、クラスを正しく構成できます:
<code class="language-php"><span class="x">class MyClass extends \yii\base\Object</span> <span class="x">{</span> <span class="x"> function __construct($param1, $param2, $config = [])</span> <span class="x"> {</span> <span class="x"> // ... initialization before configuration is applied</span> <span class="x"> parent::__construct($config);</span> <span class="x"> }</span> <span class="x"> public function init ()</span> <span class="x"> {</span> <span class="x"> parent::init();</span> <span class="x"> // ... initialization after configuration is applied</span> <span class="x"> }</span> <span class="x">}</span> </code>