yii 1.1.x と比較した yii 2 の変更点は何ですか?

WBOY
リリース: 2016-06-17 08:31:11
オリジナル
1024 人が閲覧しました

yii 1.1.x と比較した yii 2 の利点と変更点は何ですか?選ぶときに何に注意すればいいですか?

返信内容:

更新: 書き直して、いくつかの誤りを修正し、入力しました。更新されたバージョンは
「Yii2.0 の詳細理解」付録 1: Yii2.0 と Yii1.1 の間の主な改善点 にあります。 >
----------------------
参考のために私が翻訳した公式アップグレード ドキュメント:

この章では、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>
ログイン後にコピー
一般人から始めましょう (確認コードを投稿するために、1 を読んで 2 を見るのに少し時間がかかりました)

変更点と利点:
一般的な考え方は変わりません。開発プロセスもそれほど大きく変わりません。
何が変わったかというと、
1. yii2 によってもたらされた PHP5.4 の機能では、名前の競合を解決するために名前空間が導入されたため、基本クラスが C という単語で始まらなくなりました。
2.コンポーネント、代わりにオブジェクトとコンポーネントを継承することを選択します (これもオブジェクトから継承されますが、拡張のためにイベント関数とビヘイビア関数を使用します)
3. MVC の追加、元のビュー層は基本的にコントローラーによって直接組み込まれます。コントロール用のビュー クラスであるため、ビュー レイヤーはコントローラーによってもたらされたパラメーターを少し異なる方法で使用します。
4. Yii2 は基本バージョン (1 に似ています) と上級バージョン (フロントエンドとバックエンドに分かれています) に分かれており、大規模なプロジェクトの開発に適しています。
5. その他の変更点は、ブロックの割り当て (基本的にフォーム データの収集に使用される) がより便利になるなどです。インストール後、インターフェイスにはブートストラップ スタイルなどが付属します。
もちろん他にも多くの機能があります。git 上で yii によって更新されたドキュメントを直接参照できます:
yii2/docs/guide/upgrade-from-v1.md at master yiisoft/yii2 路 GitHub

--update--
1. 依存性注入を追加しました (依存性注入、理論については、古典的な翻訳記事 IoC コンテナーと依存性注入モード (翻訳)-redcoffee-ChinaUnix Blog を参照してください) 、yii の特定の実装については、/vendor/yiisoft/yii2/di にあるコンテナーとインスタンスを確認してください)。今後オブジェクトを作成するときは、基本的にコンテナーの get メソッドを使用できます。新しいものに置き換えてください。とても良いです。賞賛します~

選択:
すぐにプロジェクトを開始したい場合は、1.1.X を使用してください。2 の正式バージョンは推定されています。何ヶ月も先になる。
学習と研究の姿勢がある場合は、2 のベータ版から始めてください。正式版とあまり変わりません。

これは単なる素人のアイデアです。偉大なマスターが通りかかり、何かが間違っていることに気づき、遠慮なくコメントしてください :P チュートリアル用のブログ アドレスを推奨します: http://www.fancyecommerce.com/
関連ラベル:
yii
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!