Commit f4eee6d8 by Alexander Makarov

Merge pull request #5927 from softark/docs-guide-ja-2014-11-05

docs/guide-ja/structure-views.md added [ci skip]
parents a5e1c200 189902b1
...@@ -446,8 +446,8 @@ class SiteController extends Controller ...@@ -446,8 +446,8 @@ class SiteController extends Controller
要約すると、コントローラは、 要約すると、コントローラは、
* [リクエスト](runtime-requests.md) データにアクセスすることが出来; * [リクエスト](runtime-requests.md) データにアクセスすることが出来ます;
* リクエストデータを使って [モデル](structure-models.md) や他のサービスコンポーネントのメソッドを呼ぶことが出来; * リクエストデータを使って [モデル](structure-models.md) や他のサービスコンポーネントのメソッドを呼ぶことが出来ます;
* [ビュー](structure-views.md) を使ってレスポンスを構成することが出来; * [ビュー](structure-views.md) を使ってレスポンスを構成することが出来ます;
* リクエストデータを処理するべきではない - それは [モデル](structure-models.md) において処理されるべきである; * リクエストされたデータの処理をするべきではありません - データは [モデル](structure-models.md) において処理されるべきです;
* HTML を埋め込むなどの表示に関わるコードは避けるべきである - それは [ビュー](structure-views.md) で行う方が良い * HTML を埋め込むなどの表示に関わるコードは避けるべきです - 表示は [ビュー](structure-views.md) で行う方が良いです
...@@ -470,18 +470,18 @@ public function fields() ...@@ -470,18 +470,18 @@ public function fields()
## 最善の慣行<a name="best-practices"></a> ## 最善の慣行<a name="best-practices"></a>
モデルは、業務のデータ、規則、ロジックを表わす中心的なオブジェクトです。 モデルは、業務のデータ、規則、ロジックを表わす中心的なオブジェクトです。
モデルは、他の場所で再利用する必要がよくあります。 モデルは、さまざまな場所で再利用される必要がよくあります。
良く設計されたアプリケーションでは、通常、モデルは [コントローラ](structure-controllers.md) よりもはるかに重いものになります。 良く設計されたアプリケーションでは、通常、モデルは [コントローラ](structure-controllers.md) よりもはるかに重いものになります。
要約すると、モデルは、 要約すると、モデルは、
* ビジネスデータを表現する属性を含むことが出来; * ビジネスデータを表現する属性を含むことが出来ます;
* データの有効性と整合性を保証する検証規則を含むことが出来; * データの有効性と整合性を保証する検証規則を含むことが出来ます;
* ビジネスロジックを実装するメソッドを含むことが出来; * ビジネスロジックを実装するメソッドを含むことが出来ます;
* リクエスト、セッション、または他の環境データに直接アクセスするべきではない * リクエスト、セッション、または他の環境データに直接アクセスするべきではありません
これらのデータは、[コントローラ](structure-controllers.md) によってモデルに注入されるべきである; これらのデータは、[コントローラ](structure-controllers.md) によってモデルに注入されるべきで;
* HTML を埋め込むなどの表示用のコードは避けるべきである - これは [ビュー](structure-views.md) で行う方が良い; * HTML を埋め込むなどの表示用のコードは避けるべきです - 表示は [ビュー](structure-views.md) で行う方が良いです;
* あまりに多くの [シナリオ](#scenarios) を単一のモデルで持つことは避け * あまりに多くの [シナリオ](#scenarios) を単一のモデルで持つことは避けましょう
大規模で複雑なシステムを開発するときには、たいてい、上記の最後にあげた推奨事項を考慮するのが良いでしょう。 大規模で複雑なシステムを開発するときには、たいてい、上記の最後にあげた推奨事項を考慮するのが良いでしょう。
そういうシステムでは、モデルは数多くの場所で使用され、それに従って、数多くの規則セットやビジネスロジックを含むため、非常に大きくて重いものになり得ます。 そういうシステムでは、モデルは数多くの場所で使用され、それに従って、数多くの規則セットやビジネスロジックを含むため、非常に大きくて重いものになり得ます。
...@@ -489,11 +489,11 @@ public function fields() ...@@ -489,11 +489,11 @@ public function fields()
モデルのコードの保守性を高めるために、以下の戦略をとることが出来ます: モデルのコードの保守性を高めるために、以下の戦略をとることが出来ます:
* 異なる [アプリケーション](structure-applications.md)[モジュール](structure-modules.md) * 異なる [アプリケーション](structure-applications.md)[モジュール](structure-modules.md)
によって共有される一連の基底モデルクラスを定義する によって共有される一連の基底モデルクラスを定義します
これらのモデルクラスは、すべてで共通に使用される最小限の規則セットとロジックのみを含むべきである これらのモデルクラスは、すべてで共通に使用される最小限の規則セットとロジックのみを含むべきで
* モデルを使用するそれぞれの [アプリケーション](structure-applications.md) または [モジュール](structure-modules.md) において、 * モデルを使用するそれぞれの [アプリケーション](structure-applications.md) または [モジュール](structure-modules.md) において、
対応する基底モデルクラスから拡張した具体的なモデルクラスを定義する 対応する基底モデルクラスから拡張した具体的なモデルクラスを定義します
この具体的なモデルクラスが、そのアプリケーションやモジュールに固有の規則やロジックを含むべきである この具体的なモデルクラスが、そのアプリケーションやモジュールに固有の規則やロジックを含むべきで
例えば、[アドバンストアプリケーションテンプレート](tutorial-advanced-app.md) の中で、 例えば、[アドバンストアプリケーションテンプレート](tutorial-advanced-app.md) の中で、
基底モデルクラス `common\models\Post` を定義することが出来ます。 基底モデルクラス `common\models\Post` を定義することが出来ます。
......
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