Commit 9ac128e1 by Nobuo Kihara

docs/guide-ja/runtime-routing.md - WIP [ci skip]

parent 1a2f44b3
Routing and URL Creation ルーティングと URL 生成
======================== =======================
When a Yii application starts processing a requested URL, the first step it does is to parse the URL Yii のアプリケーションがリクエストされた URL の処理を開始するときに、最初に実行するステップは URL を解析して
into a [route](structure-controllers.md#routes). The route is then used to instantiate the corresponding [ルート](structure-controllers.md#routes) にすることです。次に、リクエストを処理するために、このルートを使って、
[controller action](structure-controllers.md) to handle the request. This whole process is called *routing*. 対応する [コントローラアクション](structure-controllers.md) のインスタンスが作成されます。
このプロセスの全体が *ルーティング* と呼ばれます。
The reverse process of routing is called *URL creation*, which creates a URL from a given route ルーティングの逆のプロセスが *URL 生成* と呼ばれます。これは、与えられたルートとそれに結び付いたクエリパラメータから
and the associated query parameters. When the created URL is later requested, the routing process can resolve it URL を生成するものです。生成された URL が後でリクエストされたとき、ルーティングのプロセスは、その URL を解決して、
back into the original route and query parameters. 元のルートとクエリパラメータに戻すことが出来ます。
The central piece responsible for routing and URL creation is the [[yii\web\UrlManager|URL manager]], ルーティングと URL 生成について責任を持つ主要コンポーネントが [[yii\web\UrlManager|URL マネージャ]] であり、`urlManager`
which is registered as the `urlManager` application component. The [[yii\web\UrlManager|URL manager]] アプリケーションコンポーネントとして登録されているものです。[[yii\web\UrlManager|URL マネージャ]] は、入ってくるリクエストを
provides the [[yii\web\UrlManager::parseRequest()|parseRequest()]] method to parse an incoming request into ルートとそれに結び付いたクエリパラメータとして解析するための [[yii\web\UrlManager::parseRequest()|parseRequest()]] メソッドと、
a route and the associated query parameters and the [[yii\web\UrlManager::createUrl()|createUrl()]] method to 与えられたルートとそれに結び付いたクエリパラメータから URL を生成するための [[yii\web\UrlManager::createUrl()|createUrl()]]
create a URL from a given route and its associated query parameters. メソッドを提供するものです。
By configuring the `urlManager` component in the application configuration, you can let your application アプリケーションコンフィギュレーションの `urlManager` コンポーネントを構成することによって、既存のアプリケーションコードを
to recognize arbitrary URL formats without modifying your existing application code. For example, you can 修正することなく、任意の URL 形式をアプリケーションに認識させることが出来ます。例えば、`post/view` アクションのための URL
use the following code to create a URL for the `post/view` action: を生成するために、次のコードを使うことが出来ます:
```php ```php
use yii\helpers\Url; use yii\helpers\Url;
// Url::to() calls UrlManager::createUrl() to create a URL // Url::to() は UrlManager::createUrl() を呼び出して URL を生成します
$url = Url::to(['post/view', 'id' => 100]); $url = Url::to(['post/view', 'id' => 100]);
``` ```
Depending on the `urlManager` configuration, the created URL may look like one of the followings (or other format). このコードによって生成される URL は、`urlManager` のコンフィギュレーションに応じて、下記の形式のうちの一つ (またはその他の形式)
And if the created URL is requested later, it will still be parsed back into the original route and query parameter value. になります。そしてまた、生成された URL が後でリクエストされたときには、解析されて元のルートとクエリパラメータに戻されます。
``` ```
/index.php?r=post/view&id=100 /index.php?r=post/view&id=100
...@@ -36,26 +37,26 @@ And if the created URL is requested later, it will still be parsed back into the ...@@ -36,26 +37,26 @@ And if the created URL is requested later, it will still be parsed back into the
``` ```
## URL Formats <a name="url-formats"></a> ## URL 形式 <a name="url-formats"></a>
The [[yii\web\UrlManager|URL manager]] supports two URL formats: the default URL format and the pretty URL format. [[yii\web\UrlManager|URL マネージャ]] は二つの URL 形式をサポートします: デフォルトの URL 形式と、綺麗な URL 形式です。
The default URL format uses a query parameter named `r` to represent the route and normal query parameters 既定の URL 形式は、`r` というクエリパラメータを使用してルートを表し、通常のクエリパラメータを使用してルートに結び付いたクエリパラメータを表します。
to represent the query parameters associated with the route. For example, the URL `/index.php?r=post/view&id=100` represents 例えば、`/index.php?r=post/view&id=100` という URL は、`post/view` というルートと、`id` というクエリパラメータが 100 であることを表します。
the route `post/view` and the `id` query parameter 100. The default URL format does not require any configuration about 既定の URL 形式は、[[yii\web\UrlManager|URL マネージャ]] についてのコンフィギュレーションを何も必要とせず、
the [[yii\web\UrlManager|URL manager]] and works in any Web server setup. ウェブサーバの設定がどのようなものでも動作します。
The pretty URL format uses the extra path following the entry script name to represent the route and the associated 綺麗な URL 形式は、エントリスクリプトの名前に続く追加のパスを使用してルートとそれに結び付いたクエリパラメータを表します。
query parameters. For example, the extra path in the URL `/index.php/post/100` is `/post/100` which may represent 例えば、`/index.php/post/100` という URL の追加のパスは `/post/100` ですが、適切な [[yii\web\UrlManager::rules|URL 規則]]
the route `post/view` and the `id` query parameter 100 with a proper [[yii\web\UrlManager::rules|URL rule]]. To use があれば、この URL が `post/view` というルートと `id` というクエリパラメータが 100 であることを表すことが出来ます。
the pretty URL format, you will need to design a set of [[yii\web\UrlManager::rules|URL rules]] according to the actual 綺麗な URL 形式を使用するためには、URL をどのように表現すべきかという実際の要求に従って、一連の [[yii\web\UrlManager::rules|URL 規則]]
requirement about how the URLs should look like. を設計する必要があります。
You may switch between the two URL formats by toggling the [[yii\web\UrlManager::enablePrettyUrl|enablePrettyUrl]] この二つの URL 形式は、[[yii\web\UrlManager|URL マネージャ]] の [[yii\web\UrlManager::enablePrettyUrl|enablePrettyUrl]]
property of the [[yii\web\UrlManager|URL manager]] without changing any other application code. プロパティを ON/OFF することによって、他のアプリケーションコードを少しも変えることなく、切り替えることが出来ます。
## Routing <a name="routing"></a> ## ルーティング <a name="routing"></a>
Routing involves two steps. In the first step, the incoming request is parsed into a route and the associated Routing involves two steps. In the first step, the incoming request is parsed into a route and the associated
query parameters. In the second step, a [controller action](structure-controllers.md) corresponding to the parsed route query parameters. In the second step, a [controller action](structure-controllers.md) corresponding to the parsed route
......
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