Commit fbb11e18 by Alexander Makarov

Merge pull request #6984 from softark/docs-guide-ja-intro-refined

Docs guide ja intro refined [ci skip]
parents fe19243d f647b65a
Yii 2.0 決定版ガイド Yii 2.0 決定版ガイド
==================== ====================
このチュートリアルは [Yii ドキュメント規約](http://www.yiiframework.com/doc/terms/) の下にリリースされています。 このチュートリアルは [Yii ドキュメント許諾条件](http://www.yiiframework.com/doc/terms/) の下にリリースされています。
All Rights Reserved. All Rights Reserved.
...@@ -20,11 +20,11 @@ All Rights Reserved. ...@@ -20,11 +20,11 @@ All Rights Reserved.
* [Yii をインストールする](start-installation.md) * [Yii をインストールする](start-installation.md)
* [アプリケーションを走らせる](start-workflow.md) * [アプリケーションを走らせる](start-workflow.md)
* [「こんにちは」と言う](start-hello.md) * [こんにちは、と言う](start-hello.md)
* [フォームを扱う](start-forms.md) * [フォームを扱う](start-forms.md)
* [データベースを扱う](start-databases.md) * [データベースを扱う](start-databases.md)
* [Gii でコードを生成する](start-gii.md) * [Gii でコードを生成する](start-gii.md)
* [この先を見通す](start-looking-ahead.md) * [先を見通す](start-looking-ahead.md)
アプリケーションの構造 アプリケーションの構造
...@@ -74,14 +74,14 @@ All Rights Reserved. ...@@ -74,14 +74,14 @@ All Rights Reserved.
データベースの取り扱い データベースの取り扱い
---------------------- ----------------------
* [データアクセスオブジェクト](db-dao.md): データベースへの接続、基本的なクエリ、トランザクション、および、スキーマ操作 * [データベースアクセスオブジェクト](db-dao.md): データベースへの接続、基本的なクエリ、トランザクション、および、スキーマ操作
* [クエリビルダ](db-query-builder.md): シンプルな抽象レイヤを使ってデータベースに対してクエリを行う * [クエリビルダ](db-query-builder.md): シンプルな抽象レイヤを使ってデータベースに対してクエリを行う
* [アクティブレコード](db-active-record.md): アクティブレコード ORM、レコードの読み出しと操作、リレーションの定義 * [アクティブレコード](db-active-record.md): アクティブレコード ORM、レコードの読み出しと操作、リレーションの定義
* [マイグレーション](db-migrations.md): チーム開発環境においてデータベースにバージョンコントロールを適用 * [マイグレーション](db-migrations.md): チーム開発環境においてデータベースにバージョンコントロールを適用
* **TBD** [Sphinx](db-sphinx.md) * **未定** [Sphinx](db-sphinx.md)
* **TBD** [Redis](db-redis.md) * **未定** [Redis](db-redis.md)
* **TBD** [MongoDB](db-mongodb.md) * **未定** [MongoDB](db-mongodb.md)
* **TBD** [ElasticSearch](db-elasticsearch.md) * **未定** [ElasticSearch](db-elasticsearch.md)
ユーザからのデータ取得 ユーザからのデータ取得
...@@ -90,7 +90,7 @@ All Rights Reserved. ...@@ -90,7 +90,7 @@ All Rights Reserved.
* [フォームを作成する](input-forms.md) * [フォームを作成する](input-forms.md)
* [入力を検証する](input-validation.md) * [入力を検証する](input-validation.md)
* [ファイルをアップロードする](input-file-upload.md) * [ファイルをアップロードする](input-file-upload.md)
* **TBD** [複数モデルのためのデータ取得](input-multiple-models.md) * **未定** [複数モデルのデータ取得](input-multiple-models.md)
データの表示 データの表示
...@@ -144,7 +144,7 @@ RESTful ウェブサービス ...@@ -144,7 +144,7 @@ RESTful ウェブサービス
* [デバッグツールバーとデバッガ](tool-debugger.md) * [デバッグツールバーとデバッガ](tool-debugger.md)
* [Gii を使ってコードを生成する](tool-gii.md) * [Gii を使ってコードを生成する](tool-gii.md)
* **TBD** [API ドキュメントを生成する](tool-api-doc.md) * **未定** [API ドキュメントを生成する](tool-api-doc.md)
テスト テスト
...@@ -152,7 +152,7 @@ RESTful ウェブサービス ...@@ -152,7 +152,7 @@ RESTful ウェブサービス
* [概要](test-overview.md) * [概要](test-overview.md)
* [テスト環境の構築](test-environment-setup.md) * [テスト環境の構築](test-environment-setup.md)
* [ユニットテスト](test-unit.md) * [単体テスト](test-unit.md)
* [機能テスト](test-functional.md) * [機能テスト](test-functional.md)
* [承認テスト](test-acceptance.md) * [承認テスト](test-acceptance.md)
* [フィクスチャ](test-fixtures.md) * [フィクスチャ](test-fixtures.md)
...@@ -176,14 +176,14 @@ RESTful ウェブサービス ...@@ -176,14 +176,14 @@ RESTful ウェブサービス
ウィジェット ウィジェット
------------ ------------
* GridView: **TBD** link to demo page * GridView: **未定** デモページへリンク
* ListView: **TBD** link to demo page * ListView: **未定** デモページへリンク
* DetailView: **TBD** link to demo page * DetailView: **未定** デモページへリンク
* ActiveForm: **TBD** link to demo page * ActiveForm: **未定** デモページへリンク
* Pjax: **TBD** link to demo page * Pjax: **未定** デモページへリンク
* Menu: **TBD** link to demo page * Menu: **未定** デモページへリンク
* LinkPager: **TBD** link to demo page * LinkPager: **未定** デモページへリンク
* LinkSorter: **TBD** link to demo page * LinkSorter: **未定** デモページへリンク
* [Bootstrap ウィジェット](widget-bootstrap.md) * [Bootstrap ウィジェット](widget-bootstrap.md)
* [jQuery UI ウィジェット](widget-jui.md) * [jQuery UI ウィジェット](widget-jui.md)
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
===================================== =====================================
Yii フレームワークは 2.0 のために完全に書き直されたため、バージョン 1.1 と 2.0 の間には数多くの違いがあります。 Yii フレームワークは 2.0 のために完全に書き直されたため、バージョン 1.1 と 2.0 の間には数多くの違いがあります。
結果として、バージョン 1.1 からのアップグレードは、マイナーバージョン間でのアップグレードのような些細な問題ではなくなりました。 結果として、バージョン 1.1 からのアップグレードは、マイナーバージョン間でのアップグレードのような些細な仕事ではなくなりました。
この節では、二つのバージョン間の主要な違いを説明します。 この節では、二つのバージョン間の主要な違いを説明します。
もし以前に Yii 1.1 を使ったことがなければ、あなたはこの節を飛ばして直接に "[始めよう](start-installation.md)" に進んでも、問題はありません。 もし以前に Yii 1.1 を使ったことがなければ、あなたはこの節を飛ばして直接に "[始めよう](start-installation.md)" に進んでも、問題はありません。
...@@ -43,7 +43,7 @@ Yii 2.0 縺ッ PHP 5.4 莉・荳翫r蠢ヲ√→縺励∪縺吶1HP 5.4 縺ッ縲〆ii 1.1 縺ォ繧医 ...@@ -43,7 +43,7 @@ Yii 2.0 縺ッ PHP 5.4 莉・荳翫r蠢ヲ√→縺励∪縺吶1HP 5.4 縺ッ縲〆ii 1.1 縺ォ繧医
名前空間 名前空間
-------- --------
Yii 2.0 での最も明らかな変更は名前空間の使用です。 Yii 2.0 での最も顕著な変更は名前空間の使用です。
ほとんど全てのコアクラスが、例えば、`yii\web\Request` のように名前空間に属します。 ほとんど全てのコアクラスが、例えば、`yii\web\Request` のように名前空間に属します。
クラス名に "C" の接頭辞はもう使われません。 クラス名に "C" の接頭辞はもう使われません。
命名のスキームはディレクトリ構造に従うようになりました。 命名のスキームはディレクトリ構造に従うようになりました。
...@@ -56,7 +56,7 @@ Yii 2.0 縺ァ縺ョ譛繧よ繧峨°縺ェ螟画峩縺ッ蜷榊燕遨コ髢薙菴ソ逕ィ縺ァ縺吶 ...@@ -56,7 +56,7 @@ Yii 2.0 縺ァ縺ョ譛繧よ繧峨°縺ェ螟画峩縺ッ蜷榊燕遨コ髢薙菴ソ逕ィ縺ァ縺吶
---------------------------- ----------------------------
Yii 2.0 は、1.1 の `CComponent` クラスを二つのクラス、すなわち、[[yii\base\Object]] と [[yii\base\Component]] に分割しました。 Yii 2.0 は、1.1 の `CComponent` クラスを二つのクラス、すなわち、[[yii\base\Object]] と [[yii\base\Component]] に分割しました。
[[yii\base\Object|Object]] クラスは、ゲッターとセッターを通じて [オブジェクトプロパティ](concept-properties.md) を定義することを可能にする軽量な基底クラスです。 [[yii\base\Object|Object]] クラスは、ゲッターとセッターを通じて [オブジェクトプロパティ](concept-properties.md) を定義することを可能にする、軽量な基底クラスです。
[[yii\base\Component|Component]] クラスは [[yii\base\Object|Object]] からの拡張であり、[イベント](concept-events.md)[ビヘイビア](concept-behaviors.md) をサポートします。 [[yii\base\Component|Component]] クラスは [[yii\base\Object|Object]] からの拡張であり、[イベント](concept-events.md)[ビヘイビア](concept-behaviors.md) をサポートします。
あなたのクラスがイベントやビヘイビアの機能を必要としない場合は、[[yii\base\Object|Object]] を基底クラスとして使うことを考慮すべきです。 あなたのクラスがイベントやビヘイビアの機能を必要としない場合は、[[yii\base\Object|Object]] を基底クラスとして使うことを考慮すべきです。
...@@ -92,7 +92,7 @@ class MyClass extends \yii\base\Object ...@@ -92,7 +92,7 @@ class MyClass extends \yii\base\Object
構成情報の配列に含まれる「名前-値」のペアが、コンストラクタの最後でプロパティを構成します。 構成情報の配列に含まれる「名前-値」のペアが、コンストラクタの最後でプロパティを構成します。
[[yii\base\Object::init()|init()]] メソッドをオーバーライドして、構成情報が適用された後に行うべき初期化処理を行うことが出来ます。 [[yii\base\Object::init()|init()]] メソッドをオーバーライドして、構成情報が適用された後に行うべき初期化処理を行うことが出来ます。
この規約に従うことによって、構成情報の配列を使って新しいオブジェクトを生成して構成することが出来るようになります。 この規約に従うことによって、新しいオブジェクトを生成して構成するときに、構成情報配列を使うことが出来るようになります。
```php ```php
$object = Yii::createObject([ $object = Yii::createObject([
...@@ -132,7 +132,7 @@ $component->on($eventName, $handler); ...@@ -132,7 +132,7 @@ $component->on($eventName, $handler);
-------------- --------------
Yii 2.0 は、パスエイリアスの使用を、ファイル/ディレクトリのパスと URL の両方に広げました。 Yii 2.0 は、パスエイリアスの使用を、ファイル/ディレクトリのパスと URL の両方に広げました。
また、Yii 2.0 では、通常のファイル/ディレクトリのパスまたは URL と区別するために、エイリアス名は `@` という文字で始まることが要求されるようになりました。 また、Yii 2.0 では、通常のファイル/ディレクトリのパスや URL と区別するため、エイリアス名は `@` という文字で始まることが要求されるようになりました。
例えば、`@yii` というエイリアスは Yii のインストールディレクトリを指します。 例えば、`@yii` というエイリアスは Yii のインストールディレクトリを指します。
パスエイリアスは Yii のコアコードのほとんどの場所でサポートされています。 パスエイリアスは Yii のコアコードのほとんどの場所でサポートされています。
例えば [[yii\caching\FileCache::cachePath]] はパスエイリアスと通常のディレクトリパスの両方を受け取ることが出来ます。 例えば [[yii\caching\FileCache::cachePath]] はパスエイリアスと通常のディレクトリパスの両方を受け取ることが出来ます。
...@@ -150,7 +150,7 @@ Yii 2.0 縺ッ縲√ヱ繧ケ繧ィ繧、繝ェ繧「繧ケ縺ョ菴ソ逕ィ繧偵√ヵ繧。繧、繝ォ/繝ぅ繝ャ繧ッ繝医 ...@@ -150,7 +150,7 @@ Yii 2.0 縺ッ縲√ヱ繧ケ繧ィ繧、繝ェ繧「繧ケ縺ョ菴ソ逕ィ繧偵√ヵ繧。繧、繝ォ/繝ぅ繝ャ繧ッ繝医
ビュー ビュー
------ ------
Yii 2 のビューについての最も顕著な変更は、ビューの中の `$this` という特殊な変数がカレントコントローラやウィジェットを指すものではなくなった、ということです。 Yii 2 のビューについての最も顕著な変更は、ビューの中の `$this` という特殊な変数が現在のコントローラやウィジェットを指すものではなくなった、ということです。
今や `$this` は 2.0 で新しく導入された概念である *ビュー* オブジェクトを指します。 今や `$this` は 2.0 で新しく導入された概念である *ビュー* オブジェクトを指します。
*ビュー* オブジェクトは [[yii\web\View]] という型であり、MVC パターンのビューの部分を表すものです。 *ビュー* オブジェクトは [[yii\web\View]] という型であり、MVC パターンのビューの部分を表すものです。
ビューにおいてコントローラやウィジェットにアクセスしたい場合は、`$this->context` を使うことが出来ます。 ビューにおいてコントローラやウィジェットにアクセスしたい場合は、`$this->context` を使うことが出来ます。
...@@ -175,10 +175,10 @@ Prado 繝Φ繝励Ξ繝シ繝医お繝ウ繧ク繝ウ縺ッ繧ゅ繧し繝昴繝医&繧後※縺∪縺帙 ...@@ -175,10 +175,10 @@ Prado 繝Φ繝励Ξ繝シ繝医お繝ウ繧ク繝ウ縺ッ繧ゅ繧し繝昴繝医&繧後※縺∪縺帙
Yii 2.0 は [[yii\base\Model]] を 1.1 における `CModel` と同様な基底モデルとして使います。 Yii 2.0 は [[yii\base\Model]] を 1.1 における `CModel` と同様な基底モデルとして使います。
`CFormModel` というクラスは完全に廃止されました。 `CFormModel` というクラスは完全に廃止されました。
Yii 2 では、それの代りに [yii\base\Model]] を拡張して、フォームモデルクラスを作成すべきです。 Yii 2 では、それの代りに [yii\base\Model]] を拡張して、フォームのモデルクラスを作成すべきです。
Yii 2.0 は サポートされるシナリオを宣言するための [[yii\base\Model::scenarios()|scenarios()]] という新しいメソッドを導入しました。 Yii 2.0 は サポートされるシナリオを宣言するための [[yii\base\Model::scenarios()|scenarios()]] という新しいメソッドを導入しました。
このメソッドを使って、あるシナリオの下で、どの属性が検証される必要があるか、また、どの属性が安全とみなされるか否か、などを宣言することが出来ます。 このメソッドを使って、どのシナリオの下で、ある属性が検証される必要があるか、また、安全とみなされるか否か、などを宣言することが出来ます。
例えば、 例えば、
```php ```php
...@@ -196,12 +196,12 @@ public function scenarios() ...@@ -196,12 +196,12 @@ public function scenarios()
`frontend` シナリオでは、`email` は一括代入が可能ですが、`role` は不可能です。 `frontend` シナリオでは、`email` は一括代入が可能ですが、`role` は不可能です。
`email``role` は、両方とも、規則を使って検証されなければなりません。 `email``role` は、両方とも、規則を使って検証されなければなりません。
[[yii\base\Model::rules()|rules()]] メソッドが Yii 1.1 同様に検証規則を宣言するために使われます。 [[yii\base\Model::rules()|rules()]] メソッドが、Yii 1.1 に引き続き、検証規則を宣言するために使われます。
[[yii\base\Model::scenarios()|scenarios()]] が導入されたことにより、`unsafe` バリデータが無くなったことに注意してください。 [[yii\base\Model::scenarios()|scenarios()]] が導入されたことにより、`unsafe` バリデータが無くなったことに注意してください。
ほとんどの場合、すなわち、[[yii\base\Model::rules()|rules()]] メソッドが存在しうるシナリオを完全に規定しているなら、そして `unsafe` な属性を宣言する必要が無いなら、[[yii\base\Model::scenarios()|scenarios()]] をオーバーライドする必要はありません。 ほとんどの場合、すなわち、[[yii\base\Model::rules()|rules()]] メソッドが存在しうるシナリオを完全に指定しており、そして `unsafe` な属性を宣言する必要が無いなら、[[yii\base\Model::scenarios()|scenarios()]] をオーバーライドする必要はありません。
モデルについてさらに詳細を学習するために、[モデル](structure-models.md) の節を参照してください。 モデルについての詳細を学習するためには、[モデル](structure-models.md) の節を参照してください。
コントローラ コントローラ
...@@ -211,7 +211,7 @@ Yii 2.0 縺ッ [[yii\web\Controller]] 繧貞渕蠎輔繧ウ繝ウ繝医Ο繝シ繝ゥ繧ッ繝ゥ繧ケ縺ィ縺 ...@@ -211,7 +211,7 @@ Yii 2.0 縺ッ [[yii\web\Controller]] 繧貞渕蠎輔繧ウ繝ウ繝医Ο繝シ繝ゥ繧ッ繝ゥ繧ケ縺ィ縺
これは Yii 1.1 における`CController` と同様なクラスです。 これは Yii 1.1 における`CController` と同様なクラスです。
[[yii\base\Action]] がアクションクラスの基底クラスです。 [[yii\base\Action]] がアクションクラスの基底クラスです。
これらに関する変更があなたのコードに及ぼす最も顕著な影響は、コントローラのアクションは表示したいコンテンツを、エコーするのでなく、返さなければならない、ということです。 コントローラに関して、あなたのコードに最も顕著な影響を及ぼす変更点は、コントローラのアクションは表示したいコンテントを、エコーするのでなく、返さなければならなくなった、ということです。
```php ```php
public function actionView($id) public function actionView($id)
...@@ -258,10 +258,9 @@ ActiveForm::end(); ...@@ -258,10 +258,9 @@ ActiveForm::end();
テーマ テーマ
------ ------
テーマは 2.0 では完全に違う動き方をします。 テーマは 2.0 では完全に違う動作をします。
テーマは、ソースのビューファイルパスをテーマのビューファイルパスにマップするパスマッピング機構に基づくものになりました。 テーマは、ソースのビューファイルパスをテーマのビューファイルパスにマップするパスマッピング機構に基づくものになりました。
例えば、あるテーマのパスマップが `['/web/views' => '/web/themes/basic']` である場合、 例えば、あるテーマのパスマップが `['/web/views' => '/web/themes/basic']` である場合、ビューファイル `/web/views/site/index.php` のテーマ版は `/web/themes/basic/site/index.php` になります。
ビューファイル `/web/views/site/index.php` のテーマ適用版は `/web/themes/basic/site/index.php` になります。
この理由により、テーマはどのようなビューファイルに対してでも適用することが出来るようになりました。 この理由により、テーマはどのようなビューファイルに対してでも適用することが出来るようになりました。
コントローラやウィジェットのコンテキストの外で表示されるビューに対してすら、適用できます。 コントローラやウィジェットのコンテキストの外で表示されるビューに対してすら、適用できます。
...@@ -293,7 +292,7 @@ Yii 2.0 縺ッ繧ウ繝。繝ウ繝医ヶ繝ュ繝け縺九i繧ウ繝槭Φ繝峨繝倥Ν繝玲ュ蝣ア繧定蜍 ...@@ -293,7 +292,7 @@ Yii 2.0 縺ッ繧ウ繝。繝ウ繝医ヶ繝ュ繝け縺九i繧ウ繝槭Φ繝峨繝倥Ν繝玲ュ蝣ア繧定蜍
Yii 2.0 は [PECL intl PHP モジュール](http://pecl.php.net/package/intl) に賛同して、内蔵の日付フォーマッタと数字フォーマッタの部品を取り除きました。 Yii 2.0 は [PECL intl PHP モジュール](http://pecl.php.net/package/intl) に賛同して、内蔵の日付フォーマッタと数字フォーマッタの部品を取り除きました。
メッセージは `i18n` アプリケーションコンポーネント経由で翻訳されるようになりました。 メッセージは `i18n` アプリケーションコンポーネント経由で翻訳されるようになりました。
このコンポーネントは一連のメッセージソースを管理するもので、メッセージのカテゴリに基づいて異なるメッセージソースを使うことを許容するものです。 このコンポーネントは一連のメッセージソースを管理するもので、メッセージのカテゴリに基づいて異なるメッセージソースを使うことを可能にするものです。
詳細については [国際化](tutorial-i18n.md) の節を参照してください。 詳細については [国際化](tutorial-i18n.md) の節を参照してください。
...@@ -301,7 +300,7 @@ Yii 2.0 縺ッ [PECL intl PHP 繝「繧ク繝・繝シ繝ォ](http://pecl.php.net/package/intl) 縺 ...@@ -301,7 +300,7 @@ Yii 2.0 縺ッ [PECL intl PHP 繝「繧ク繝・繝シ繝ォ](http://pecl.php.net/package/intl) 縺
アクションフィルタ アクションフィルタ
------------------ ------------------
新しいアクションフィルタはビヘイビアによって実装されています。 アクションフィルタはビヘイビアによって実装されるようになりました。
新しいカスタムフィルタを定義するためには、[[yii\base\ActionFilter]] を拡張します。 新しいカスタムフィルタを定義するためには、[[yii\base\ActionFilter]] を拡張します。
フィルタを使うためには、そのフィルタクラスをビヘイビアとしてコントローラにアタッチします。 フィルタを使うためには、そのフィルタクラスをビヘイビアとしてコントローラにアタッチします。
例えば、[[yii\filters\AccessControl]] を使うためには、コントローラに次のコードを書くことになります。 例えば、[[yii\filters\AccessControl]] を使うためには、コントローラに次のコードを書くことになります。
...@@ -329,7 +328,7 @@ public function behaviors() ...@@ -329,7 +328,7 @@ public function behaviors()
Yii 2.0 は、*アセットバンドル* と呼ばれる新しい概念を導入しました。これは、Yii 1.1 にあったスクリプトパッケージの概念を置き換えるものです。 Yii 2.0 は、*アセットバンドル* と呼ばれる新しい概念を導入しました。これは、Yii 1.1 にあったスクリプトパッケージの概念を置き換えるものです。
アセットバンドルは、あるディレクトリの下に集められた一群のアセットファイル (例えば、JavaScript ファイル、CSS ファイル、イメージファイルなど) です。 アセットバンドルは、あるディレクトリの下に集められた一群のアセットファイル (例えば、JavaScript ファイル、CSS ファイル、イメージファイルなど) です。
それぞれのアセットバンドルは [[yii\web\AssetBundle]] を拡張したクラスとして表されます。 それぞれのアセットバンドルは [[yii\web\AssetBundle]] を拡張したクラスとして表わされます。
アセットバンドルを [[yii\web\AssetBundle::register()]] を通じて登録することによって、そのバンドルに含まれるアセットにウェブ経由でアクセスできるようになります。 アセットバンドルを [[yii\web\AssetBundle::register()]] を通じて登録することによって、そのバンドルに含まれるアセットにウェブ経由でアクセスできるようになります。
Yii 1 とは異なり、バンドルを登録したページは、そのバンドルで指定されている JavaScript と CSS ファイルへの参照を自動的に含むようになります。 Yii 1 とは異なり、バンドルを登録したページは、そのバンドルで指定されている JavaScript と CSS ファイルへの参照を自動的に含むようになります。
...@@ -440,8 +439,8 @@ $orders = $customer->getOrders()->andWhere('status=1')->all(); ...@@ -440,8 +439,8 @@ $orders = $customer->getOrders()->andWhere('status=1')->all();
Yii 2.0 では、JOIN を使わずに二つの SQL 文が実行されます。 Yii 2.0 では、JOIN を使わずに二つの SQL 文が実行されます。
すなわち、第一の SQL 文が主たるレコードを返し、第二の SQL 文は主レコードのプライマリキーを使うフィルタリングによって関連レコードを返します。 すなわち、第一の SQL 文が主たるレコードを返し、第二の SQL 文は主レコードのプライマリキーを使うフィルタリングによって関連レコードを返します。
多数のレコードを返すクエリを構築するときは、[[yii\db\ActiveRecord|ActiveRecord]] を返す代りに、[[yii\db\ActiveQuery::asArray()|asArray()]] メソッドをチェインして、クエリ結果を配列として返すことが出来ます。 多数のレコードを返すクエリを構築するときは、[[yii\db\ActiveRecord|ActiveRecord]] を返す代りに、[[yii\db\ActiveQuery::asArray()|asArray()]] メソッドをチェインすることが出来ます。
うすると、レコードの数が多い場合は、必要な CPU 時間とメモリを著しく削減することが出来ます。 うすると、クエリ結果は配列として返されることになり、レコードの数が多い場合は、必要な CPU 時間とメモリを著しく削減することが出来ます。
例えば、 例えば、
```php ```php
...@@ -449,7 +448,7 @@ $customers = Customer::find()->asArray()->all(); ...@@ -449,7 +448,7 @@ $customers = Customer::find()->asArray()->all();
``` ```
もう一つの変更点は、属性のデフォルト値を public なプロパティによって定義することは出来なくなった、ということです。 もう一つの変更点は、属性のデフォルト値を public なプロパティによって定義することは出来なくなった、ということです。
デフォルト値が必要な場合は、アクティブレコードクラスの `init` メソッドの中で設定しなければなりません。 デフォルト値を定義する必要がある場合は、アクティブレコードクラスの `init` メソッドの中で設定しなければなりません。
```php ```php
public function init() public function init()
...@@ -506,7 +505,7 @@ User 縺ィ IdentityInterface ...@@ -506,7 +505,7 @@ User 縺ィ IdentityInterface
そして `CUserIdentity` クラスはもうありません。代りに、使い方がもっと単純な [[yii\web\IdentityInterface]] を実装すべきです。 そして `CUserIdentity` クラスはもうありません。代りに、使い方がもっと単純な [[yii\web\IdentityInterface]] を実装すべきです。
アドバンストアプリケーションテンプレートがそういう例を提供しています。 アドバンストアプリケーションテンプレートがそういう例を提供しています。
詳細は [認証](security-authentication.md)[権限](security-authorization.md)、そして [アドバンストアプリケーションテンプレート](tutorial-advanced-app.md) の節を参照してください。 詳細は [認証](security-authentication.md)[権限付与](security-authorization.md)、そして [アドバンストアプリケーションテンプレート](tutorial-advanced-app.md) の節を参照してください。
URL 管理 URL 管理
......
...@@ -3,10 +3,10 @@ Yii とは何か ...@@ -3,10 +3,10 @@ Yii とは何か
Yii は現代的なウェブアプリケーションを迅速に開発するための、高性能な、コンポーネントベースの PHP フレームワークです。 Yii は現代的なウェブアプリケーションを迅速に開発するための、高性能な、コンポーネントベースの PHP フレームワークです。
Yii という名前 (`イー` すなわち `[ji:]` と発音します) は、中国語では「易」であり、「シンプルかつ進化的」であることを意味します。 Yii という名前 (`イー` すなわち `[ji:]` と発音します) は、中国語では「易」であり、「シンプルかつ進化的」であることを意味します。
また **Yes It Is** のアクロニム(頭字語)であると考えることも出来ます。 また **Yes It Is** のアクロニム (頭字語) であると考えることも出来ます。
Yii は何に向いているか Yii は何に適しているか
---------------------- ----------------------
Yii は汎用的なウェブプログラミングフレームワークです。 Yii は汎用的なウェブプログラミングフレームワークです。
...@@ -14,23 +14,23 @@ Yii は汎用的なウェブプログラミングフレームワークです。 ...@@ -14,23 +14,23 @@ Yii は汎用的なウェブプログラミングフレームワークです。
コンポーネントベースのアーキテクチャと洗練されたキャッシュサポートを持っているため、Yii は大規模なアプリケーション、たとえば、ポータル、フォーラム、コンテンツマネージメントシステム (CMS)、電子商取引プロジェクト、RESTful ウェブサービス、等々を開発するのに特に適しています。 コンポーネントベースのアーキテクチャと洗練されたキャッシュサポートを持っているため、Yii は大規模なアプリケーション、たとえば、ポータル、フォーラム、コンテンツマネージメントシステム (CMS)、電子商取引プロジェクト、RESTful ウェブサービス、等々を開発するのに特に適しています。
Yii を他のフレームワークと比べるとどうか? Yii を他のフレームワークと比べると
----------------------------------------- ----------------------------------
あなたが既に他のフレームワークに親しんでいる場合は、Yii を比較するとどうなるのかを知りたいと思うでしょう。 あなたが既に他のフレームワークに親しんでいる場合は、Yii を比較するとどうなのかを知りたいでしょう。
- ほとんどの PHP フレームワーク同様、Yii は MVC (Model-View-Controller) デザインパターンを実装し、このパターンに基づいたコードの組織化を推進しています。 - ほとんどの PHP フレームワーク同様、Yii は MVC (Model-View-Controller) デザインパターンを実装し、このパターンに基づいたコードの組織化を推進しています。
- Yii は、コードはシンプルかつエレガントに書かれるべきである、という哲学を採用しています。 - Yii は、コードはシンプルかつエレガントに書かれるべきである、という哲学を採用しています。
Yii は、何らかのデザインパターンを厳密に守ることを主たる目的として大袈裟な設計をすることは、決してしようとしません。 何らかのデザインパターンの厳密な遵守を主な目的とする凝りすぎた設計を、Yii がしようと試みることは決してありません。
- Yii は、検証済みで直ちに使える多数の機能を提供するフル装備のフレームワークです。 - Yii はフル装備のフレームワークです。
リレーショナルデータベースと NoSQL データベースの両方のためのクエリビルダとアクティブレコード、RESTful API 開発サポート、多層構成のキャッシュサポート、その他諸々 クエリビルダ、リレーショナルデータベースと NoSQL データベースの双方のためのアクティブレコード、RESTful API 開発サポート、多層構成のキャッシュサポート、その他、検証済みで直ちに使える多数の機能を提供します
- Yii は極めて拡張性の高いフレームワークです。あなたはコアのコードのほとんど全ての要素をカスタマイズしたり置き換えたりすることが出来ます。 - Yii は極めて拡張性の高いフレームワークです。あなたはコアのコードのほとんど全ての要素をカスタマイズしたり置き換えたりすることが出来ます。
また、Yii の堅固なエクステンションアーキテクチャを利用して、再配布可能なエクステンションを使用したり開発したりすることも出来ます。 また、Yii の堅固なエクステンションアーキテクチャを利用して、再配布可能なエクステンションを使用したり開発したりすることも出来ます。
- 高性能であることは常に Yii の主たる目標です。 - 高性能であることは常に Yii の主たる目標です。
Yii はワンマンショーではありません。Yii は [強力なコア開発チーム][] および Yii 開発に間断なく貢献してくれるプロフェッショナルの大きなコミュニティーに支えられたプロジェクトです。 Yii はワンマンショーではありません。Yii は [強力なコア開発チーム][] および Yii 開発に間断なく貢献してくれるプロフェッショナルの大きなコミュニティーに支えられたプロジェクトです。
Yii 開発チームは最新のウェブ開発の潮流や、他のフレームワークやプロジェクトに見られるベストプラクティスと機能から目を離しません Yii 開発チームは、最新のウェブ開発の潮流と、他のフレームワークやプロジェクトに見出される最善のプラクティスと機能を、注意深く見守り続けています
他のところで見出された関連性の高いベストプラクティスと機能は、定期的にコアフレームワークに組み込まれ、シンプルかつエレガントなインターフェイスを通じて公開されます。 他のところで見出された最善のプラクティスと機能で最も適切なものは、定期的にコアフレームワークに組み込まれ、シンプルかつエレガントなインターフェイスを通じて公開されます。
[強力なコア開発チーム]: http://www.yiiframework.com/about/ [強力なコア開発チーム]: http://www.yiiframework.com/about/
...@@ -48,10 +48,10 @@ Yii は現在、利用可能な二つのメジャーバージョン、すなわ ...@@ -48,10 +48,10 @@ Yii は現在、利用可能な二つのメジャーバージョン、すなわ
------------------ ------------------
Yii 2.0 は PHP 5.4.0 以上を必要とします。 Yii 2.0 は PHP 5.4.0 以上を必要とします。
の機能に対する詳細な必要条件は、全ての Yii リリースに含まれている必要条件チェッカを走らせることによって知ることが出来ます。 の機能に対する詳細な必要条件は、全ての Yii リリースに含まれている必要条件チェッカを走らせることによって知ることが出来ます。
Yii を使うためには、オブジェクト指向プログラミング (OOP) の基本的な知識が必要です。 Yii を使うためには、オブジェクト指向プログラミング (OOP) の基本的な知識が必要です。
なぜなら、Yii は純粋な OOP ベースのフレームワークだからです。 なぜなら、Yii は純粋な OOP ベースのフレームワークだからです。
また、Yii 2.0 は [名前空間](http://php.net/manual/ja/language.namespaces.php)[トレイト](http://php.net/manual/ja/language.oop5.traits.php) のような PHP の最新の機能を利用しています。 また、Yii 2.0 は [名前空間](http://php.net/manual/ja/language.namespaces.php)[トレイト](http://php.net/manual/ja/language.oop5.traits.php) のような PHP の最新の機能を利用しています。
これらの概念を理解することは、Yii 2.0 を採用することをより一層容易にするでしょう。 これらの概念を理解することは、Yii 2.0 を採用することを一層容易にするでしょう。
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment