このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 次のリビジョン 両方とも次のリビジョン | ||
slim:4:routing [2020/10/10 17:26] y2sunlight [Route expressions caching] |
slim:4:routing [2020/10/10 21:13] y2sunlight [Slimがコントローラーをインスタンス化できるようにする] |
||
---|---|---|---|
行 461: | 行 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> | ||
行 489: | 行 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> | ||
行 540: | 行 521: | ||
} | } | ||
</ | </ | ||
- | |||
- | Create a factory in the container that instantiates the controller with the dependencies: | ||
依存関係を持つコントローラーをインスタンス化するファクトリをコンテナーに作成します。 | 依存関係を持つコントローラーをインスタンス化するファクトリをコンテナーに作成します。 | ||
行 558: | 行 537: | ||
}); | }); | ||
</ | </ | ||
- | |||
- | This allows you to leverage the container for dependency injection and so you can inject specific dependencies into the controller. | ||
これにより、依存関係の注入にコンテナーを活用できるため、特定の依存関係をコントローラーに注入できます。 | これにより、依存関係の注入にコンテナーを活用できるため、特定の依存関係をコントローラーに注入できます。 | ||
行 565: | 行 542: | ||
\\ | \\ | ||
- | ==== Allow Slim to instantiate the controller | + | ==== Slimがコントローラーをインスタンス化できるようにする |
- | + | ||
- | Alternatively, | + | |
- | または、クラスのコンテナにエントリがない場合、Slimはコンテナのインスタンスをコンストラクタに渡します。 | + | また、クラスがコンテナにエントリされていない場合、Slimはコンテナのインスタンスをそのクラスのコンストラクタに渡します。1つのアクションのみを処理する呼び出し可能なクラスの代わりに、多くのアクションを持つコントローラーを構築できるのです。 |
<code php> | <code php> | ||
行 604: | 行 579: | ||
</ | </ | ||
- | You can use your controller methods like so. | + | このコントローラーメソッドは次のように使用できます。 |
- | + | ||
- | このようにコントローラーメソッドを使用できます。 | + | |
<code php> | <code php> |