Commit d148fee1 by Nobuo Kihara

docs/guide-ja/structure-application-components.md - "config" => "構成(情報)" [ci skip]

parent 74e0fee7
...@@ -3,11 +3,10 @@ ...@@ -3,11 +3,10 @@
アプリケーションは [サービスロケータ](concept-service-locator.md) です。 アプリケーションは [サービスロケータ](concept-service-locator.md) です。
アプリケーションは、リクエストを処理するためのいろいろなサービスを提供する一連のオブジェクト、いわゆる *アプリケーションコンポーネント* をホストします。 アプリケーションは、リクエストを処理するためのいろいろなサービスを提供する一連のオブジェクト、いわゆる *アプリケーションコンポーネント* をホストします。
例えば、`urlManager` がウェブリクエストを適切なコントローラにルーティングする役割を負い、 例えば、`urlManager` がウェブリクエストを適切なコントローラにルーティングする役割を負い、`db` コンポーネントが DB 関連のサービスを提供する、等々です。
`db` コンポーネントが DB 関連のサービスを提供する、等々です。
全てのアプリケーションコンポーネントは、それぞれ、同一のアプリケーション内で他のアプリケーションコンポーネントから区別できるように、ユニークな ID を持ちます。 全てのアプリケーションコンポーネントは、それぞれ、同一のアプリケーション内で他のアプリケーションコンポーネントから区別できるように、ユニークな ID を持ちます。
アプリケーションコンポーネントには、次の式によってアクセス出来ます: アプリケーションコンポーネントには、次の式によってアクセス出来ます
```php ```php
\Yii::$app->componentID \Yii::$app->componentID
...@@ -20,7 +19,7 @@ ...@@ -20,7 +19,7 @@
二度目以降のアクセスでは、同じコンポーネントのインスタンスが返されます。 二度目以降のアクセスでは、同じコンポーネントのインスタンスが返されます。
どのようなオブジェクトでも、アプリケーションコンポーネントとすることが可能です。 どのようなオブジェクトでも、アプリケーションコンポーネントとすることが可能です。
[アプリケーションの設定情報](structure-applications.md#application-configurations) の中で [[yii\base\Application::components]] プロパティを構成することによって、アプリケーションコンポーネントを登録することが出来ます。 [アプリケーションの構成情報](structure-applications.md#application-configurations) の中で [[yii\base\Application::components]] プロパティを構成することによって、アプリケーションコンポーネントを登録することが出来ます。
例えば、 例えば、
```php ```php
...@@ -29,7 +28,7 @@ ...@@ -29,7 +28,7 @@
// クラス名を使って "cache" コンポーネントを登録 // クラス名を使って "cache" コンポーネントを登録
'cache' => 'yii\caching\ApcCache', 'cache' => 'yii\caching\ApcCache',
// 設定情報の配列を使って "db" コンポーネントを登録 // 構成情報の配列を使って "db" コンポーネントを登録
'db' => [ 'db' => [
'class' => 'yii\db\Connection', 'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=demo', 'dsn' => 'mysql:host=localhost;dbname=demo',
...@@ -54,12 +53,11 @@ ...@@ -54,12 +53,11 @@
## コンポーネントをブートストラップに含める<a name="bootstrapping-components"></a> ## コンポーネントをブートストラップに含める<a name="bootstrapping-components"></a>
上述のように、アプリケーションコンポーネントは最初にアクセスされた時に初めてインスタンスが作成されます。 上述のように、アプリケーションコンポーネントは最初にアクセスされた時に初めてインスタンスが作成されます。
リクエストの間に全くアクセスされなかった時は、インスタンスは作成されません。けれども、場合によっては、 リクエストの間に全くアクセスされなかった時は、インスタンスは作成されません。
明示的にアクセスされないときでも、リクエストごとにアプリケーションコンポーネントのインスタンスを作成する必要があることがあります。 けれども、場合によっては、明示的にアクセスされないときでも、リクエストごとにアプリケーションコンポーネントのインスタンスを作成したいことがあります。
そうするためには、アプリケーションの [[yii\base\Application::bootstrap|bootstrap]] プロパティのリストに そうするためには、アプリケーションの [[yii\base\Application::bootstrap|bootstrap]] プロパティのリストにそのコンポーネントの ID を挙げることが出来ます。
そういうコンポーネントの ID を挙げることが出来ます。
例えば、次のアプリケーション設定情報は、`log` コンポーネントが常にロードされることを保証するものです。 例えば、次のアプリケーション構成情報は、`log` コンポーネントが常にロードされることを保証するものです。
```php ```php
[ [
...@@ -68,7 +66,7 @@ ...@@ -68,7 +66,7 @@
], ],
'components' => [ 'components' => [
'log' => [ 'log' => [
// "log" コンポーネントの設定情報 // "log" コンポーネントの構成情報
], ],
], ],
] ]
...@@ -77,13 +75,14 @@ ...@@ -77,13 +75,14 @@
## コアアプリケーションコンポーネント<a name="core-application-components"></a> ## コアアプリケーションコンポーネント<a name="core-application-components"></a>
Yii は固定の ID とデフォルトの設定情報を持つ一連の *コア* アプリケーションコンポーネントを定義しています。 Yii は固定の ID とデフォルトの構成情報を持つ一連の *コア* アプリケーションコンポーネントを定義しています。
例えば、[[yii\web\Application::request|request]] コンポーネントは、ユーザリクエストに関する情報を収集して、それを [ルート](runtime-routing.md) として解決します。 例えば、[[yii\web\Application::request|request]] コンポーネントは、ユーザリクエストに関する情報を収集して、それを [ルート](runtime-routing.md) として解決するために使用されます。
[[yii\base\Application::db|db]] コンポーネントは、それを通じてデータベースクエリを実行できるデータベース接続を表現します。 また、[[yii\base\Application::db|db]] コンポーネントは、それを通じてデータベースクエリを実行できるデータベース接続を表現します。
Yii のアプリケーションがユーザリクエストを処理することが出来るのは、まさにこれらのコアアプリケーションコンポーネントの助力によります。 Yii のアプリケーションがユーザリクエストを処理出来るのは、まさにこれらのコアアプリケーションコンポーネントの助けがあってこそです。
下記が事前に定義されたコアアプリケーションコンポーネントです。 下記が事前に定義されたコアアプリケーションコンポーネントです。
通常のアプリケーションコンポーネントに対するのと同様に、これらを構成し、カスタマイズすることが出来ます。 通常のアプリケーションコンポーネントに対するのと同様に、これらを構成し、カスタマイズすることが出来ます。
コアアプリケーションコンポーネントを構成するときは、クラスを指定しなければ、デフォルトのクラスが使用されます。 コアアプリケーションコンポーネントを構成するときは、クラスを指定しない場合は、デフォルトのクラスが使用されます。
* [[yii\web\AssetManager|assetManager]]: アセットバンドルとアセットの発行を管理します。 * [[yii\web\AssetManager|assetManager]]: アセットバンドルとアセットの発行を管理します。
詳細は [アセット](structure-assets.md) の節を参照してください。 詳細は [アセット](structure-assets.md) の節を参照してください。
......
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