このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
slim:4:routing [2020/10/10 17:25] y2sunlight [Route middleware] |
slim:4:routing [2020/10/10 21:27] y2sunlight [インボーク可能なクラスの使用] |
||
---|---|---|---|
行 436: | 行 436: | ||
\\ | \\ | ||
- | ===== Route expressions caching | + | ===== ルーターキャッシュ |
'' | '' | ||
行 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> | ||
行 615: | 行 588: | ||
\\ | \\ | ||
- | ==== Using an invokable class ==== | + | ==== インボーク可能なアクションクラスの使用 |
- | You do not have to specify a method in your route callable and can just set it to be an invokable class such as: | + | ルート呼び出しのメソッドを指定する必要はなく、次のようなインボーク可能なアクションクラスとして設定するだけです: |
- | + | ||
- | ルート呼び出し可能メソッドでメソッドを指定する必要はなく、次のような呼び出し可能クラスに設定するだけです: | + | |
<code php> | <code php> | ||
行 646: | 行 617: | ||
</ | </ | ||
- | You can use this class like so. | + | このクラスは次のように使用できます。 |
- | + | ||
- | このクラスはこのように使用できます。 | + | |
<code php> | <code php> | ||
行 654: | 行 623: | ||
</ | </ | ||
- | Again, as with controllers, | + | 繰り返しになりますが、コントローラーを使った場合と同様に、クラス名をコンテナーに登録すると、ファクトリを作成して、アクションクラスに必要としている特定の依存関係だけを注入できます。 |
- | + | ||
- | 繰り返しますが、コントローラーの場合と同様に、クラス名をコンテナーに登録すると、ファクトリを作成して、必要な特定の依存関係だけをアクションクラスに挿入できます。 | + | |
\\ | \\ | ||