このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 次のリビジョン 両方とも次のリビジョン | ||
slim:4:routing [2020/10/09 20:30] y2sunlight [ルート戦略] |
slim:4:routing [2020/10/10 21:13] y2sunlight [Slimがコントローラーをインスタンス化できるようにする] |
||
---|---|---|---|
行 209: | 行 209: | ||
===== ルート戦略 ===== | ===== ルート戦略 ===== | ||
- | |||
- | Slim provides an alternative strategy called '' | ||
ルートコールバックのシグニチャは、ルート戦略によって決定されます。デフォルトでは、Slimは、ルートコールバックがリクエスト、レスポンス、およびルートプレースホルダー引数の配列を受け入れることを期待しています。これは、'' | ルートコールバックのシグニチャは、ルート戦略によって決定されます。デフォルトでは、Slimは、ルートコールバックがリクエスト、レスポンス、およびルートプレースホルダー引数の配列を受け入れることを期待しています。これは、'' | ||
行 263: | 行 261: | ||
\\ | \\ | ||
- | ===== Route placeholders | + | ===== ルートプレースホルダー===== |
- | Each routing method described above accepts a URL pattern that is matched against the current | + | 上記の各ルーティングメソッドは、現在のHTTPリクエストURIと照合されるURLパターンを受け入れます。ルートパターンは、名前付きプレースホルダーを使用して、HTTPリクエストURIセグメントを動的に照合できます。 |
- | 上記の各ルーティングメソッドは、現在のHTTPリクエストURIと照合されるURLパターンを受け入れます。 ルートパターンは、名前付きプレースホルダーを使用して、HTTPリクエストURIセグメントを動的に照合できます。 | + | ==== フォーマット |
- | ==== Format ==== | + | ルートパターンのプレースホルダーは '' |
- | + | ||
- | A route pattern placeholder starts with a '' | + | |
- | + | ||
- | ルート(route)パターンのプレースホルダーは '' | + | |
<code php> | <code php> | ||
行 290: | 行 284: | ||
\\ | \\ | ||
- | ==== Optional segments | + | ==== オプションセグメント |
- | To make a section optional, simply wrap in square brackets: | + | セクションをオプションにするには、角括弧('' |
- | + | ||
- | セクションをオプションにするには、角かっこで囲みます: | + | |
<code php> | <code php> | ||
行 305: | 行 297: | ||
</ | </ | ||
- | Multiple optional parameters are supported by nesting: | + | ネストする事により、複数のオプションパラメータがサポートされます: |
- | + | ||
- | ネストにより、複数のオプションパラメータがサポートされます: | + | |
<code php> | <code php> | ||
行 318: | 行 308: | ||
</ | </ | ||
- | For “Unlimited” optional parameters, you can do this: | + | オプションパラメータが「無制限」の場合、以下のように行うことができます: |
- | + | ||
- | 「無制限」のオプションパラメータの場合、これを行うことができます: | + | |
<code php> | <code php> | ||
行 332: | 行 320: | ||
</ | </ | ||
- | In this example, a URI of ''/ | + | 上の例では、URIが ''/ |
- | + | ||
- | この例では、URIが ''/ | + | |
\\ | \\ | ||
- | ==== Regular expression matching | + | ==== 正規表現マッチング |
- | By default the placeholders are written inside '' | + | デフォルトでは、プレースホルダーは '' |
- | + | ||
- | デフォルトでは、プレースホルダーは '' | + | |
<code php> | <code php> | ||
行 355: | 行 339: | ||
\\ | \\ | ||
- | ===== Route names ===== | + | ===== ルート名 |
- | + | ||
- | Application routes can be assigned a name. This is useful if you want to programmatically generate a URL to a specific route with the RouteParser’s '' | + | |
- | アプリケーションルートには名前を付けることができます。これは、RouteParser の '' | + | アプリケーションルートには名前を付けることができます。これは、RouteParser の '' |
<code php> | <code php> | ||
行 367: | 行 349: | ||
})-> | })-> | ||
</ | </ | ||
- | |||
- | You can generate a URL for this named route with the application RouteParser’s urlFor() method. | ||
この名前付きルートのURLは、アプリケーション RouteParser の '' | この名前付きルートのURLは、アプリケーション RouteParser の '' | ||
行 379: | 行 359: | ||
</ | </ | ||
- | The RouteParser’s urlFor() method accepts three arguments: | + | RouteParser の '' |
- | + | ||
- | RouteParser の '' | + | |
- | + | ||
- | * $routeName The route name. A route’s name can be set via $route-> | + | |
- | * $data Associative array of route pattern placeholders and replacement values. | + | |
- | * $queryParams Associative array of query parameters to be appended to the generated url. | + | |
* '' | * '' | ||
- | * '' | + | * '' |
* '' | * '' | ||
\\ | \\ | ||
- | ===== Route groups | + | ===== ルートグループ |
- | To help organize routes into logical groups, the '' | + | ルートを論理グループに整理するために、'' |
- | + | ||
- | ルートを論理グループに整理するために、'' | + | |
<code php> | <code php> | ||
行 420: | 行 392: | ||
}); | }); | ||
</ | </ | ||
- | |||
- | The group pattern can be empty, enabling the logical grouping of routes that do not share a common pattern. | ||
グループパターンは空にすることができ、共通のパターンを共有しないルートの論理グループ化を有効にします。 | グループパターンは空にすることができ、共通のパターンを共有しないルートの論理グループ化を有効にします。 | ||
行 441: | 行 411: | ||
})-> | })-> | ||
</ | </ | ||
- | |||
- | Note inside the group closure, Slim binds the closure to the container instance. | ||
グループクロージャー内で、Slimはクロージャーをコンテナーインスタンスにバインドすることに注意してください。 | グループクロージャー内で、Slimはクロージャーをコンテナーインスタンスにバインドすることに注意してください。 | ||
- | |||
- | * inside route closure, '' | ||
* ルートクロージャ内で、'' | * ルートクロージャ内で、'' | ||
行 452: | 行 418: | ||
\\ | \\ | ||
- | ===== Route middleware | + | ===== ルートミドルウェア |
- | + | ||
- | You can also attach middleware to any route or route group. | + | |
ミドルウェアを任意のルートまたはルートグループにアタッチすることもできます。 | ミドルウェアを任意のルートまたはルートグループにアタッチすることもできます。 | ||
行 472: | 行 436: | ||
\\ | \\ | ||
- | ===== Route expressions caching | + | ===== ルーターキャッシュ |
- | It’s possible to enable router cache via '' | + | '' |
- | + | ||
- | '' | + | |
<code php> | <code php> | ||
行 499: | 行 461: | ||
\\ | \\ | ||
- | ===== Container Resolution | + | ===== コンテナ―ソリユーション |
- | You are not limited to defining a function for your routes. In Slim there are a few different ways to define your route action functions. | + | ルートに対しては関数を定義することだけに限定されません。Slimでは、ルートのアクション関数を定義するいくつかの異なる方法があります。 |
- | + | ||
- | ルートの関数を定義することに限定されません。Slimでは、ルートアクション関数を定義するいくつかの異なる方法があります。 | + | |
- | + | ||
- | In addition to a function, you may use: | + | |
関数に加えて、次のものを使用できます: | 関数に加えて、次のものを使用できます: | ||
- | * container_key: | + | * コンテナ―キー:メソッド |
- | * Class: | + | |
- | * Class implementing ''< | + | |
- | * container_key | + | |
- | + | ||
- | * container_key:method | + | |
* クラス:メソッド | * クラス:メソッド | ||
- | * ''< | + | * ''< |
- | * container_key | + | * コンテナ―キー |
- | + | ||
- | This functionality is enabled by Slim’s Callable Resolver Class. It translates a string entry into a function call. Example: | + | |
- | この機能は、Slim の Callable Resolver Class によって有効になります。文字列エントリを関数呼び出しに変換します。例: | + | この機能は、Slim の Callable Resolver Class によって有効になります。それは、文字列エントリを関数呼び出しに変換します。例: |
<code php> | <code php> | ||
行 527: | 行 478: | ||
</ | </ | ||
- | Alternatively, | + | または、PHPの '':: |
- | + | ||
- | または、PHPの '':: | + | |
<code php> | <code php> | ||
$app-> | $app-> | ||
</ | </ | ||
- | |||
- | In this code above we are defining a ''/'' | ||
上記のコードでは、''/'' | 上記のコードでは、''/'' | ||
- | Slim first looks for an entry of '' | + | Slimは最初にコンテナ内の '' |
- | + | ||
- | Slimは最初にコンテナ内の '' | + | |
\\ | \\ | ||
- | ==== Registering a controller with the container | + | ==== コントローラーをコンテナーに登録する |
- | Create a controller with the '' | + | '' |
- | + | ||
- | '' | + | |
<code php> | <code php> | ||
行 578: | 行 521: | ||
} | } | ||
</ | </ | ||
- | |||
- | Create a factory in the container that instantiates the controller with the dependencies: | ||
依存関係を持つコントローラーをインスタンス化するファクトリをコンテナーに作成します。 | 依存関係を持つコントローラーをインスタンス化するファクトリをコンテナーに作成します。 | ||
行 596: | 行 537: | ||
}); | }); | ||
</ | </ | ||
- | |||
- | This allows you to leverage the container for dependency injection and so you can inject specific dependencies into the controller. | ||
これにより、依存関係の注入にコンテナーを活用できるため、特定の依存関係をコントローラーに注入できます。 | これにより、依存関係の注入にコンテナーを活用できるため、特定の依存関係をコントローラーに注入できます。 | ||
行 603: | 行 542: | ||
\\ | \\ | ||
- | ==== Allow Slim to instantiate the controller | + | ==== Slimがコントローラーをインスタンス化できるようにする |
- | Alternatively, | + | また、クラスがコンテナにエントリされていない場合、Slimはコンテナのインスタンスをそのクラスのコンストラクタに渡します。1つのアクションのみを処理する呼び出し可能なクラスの代わりに、多くのアクションを持つコントローラーを構築できるのです。 |
- | + | ||
- | または、クラスのコンテナにエントリがない場合、Slimはコンテナのインスタンスをコンストラクタに渡します。 | + | |
<code php> | <code php> | ||
行 642: | 行 579: | ||
</ | </ | ||
- | You can use your controller methods like so. | + | このコントローラーメソッドは次のように使用できます。 |
- | + | ||
- | このようにコントローラーメソッドを使用できます。 | + | |
<code php> | <code php> |