Download the PHP package haikara/flat-route without Composer
On this page you can find all versions of the php package haikara/flat-route. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package flat-route
FlatRoute
セットアップ
ContainerInterfaceの実装が必要なので、任意のライブラリを用意する。
下記の例ではknp/dineryを使用する。
ルーティング設定
基本的なルーティング
PSR-7の実装が必要。下記の例ではlaminas/laminas-diactorosを利用する。
Router::get/Router::postの第一引数にパスを指定し、第二引数に実行したい処理を渡す。
パスのことをルーティングパターン、実行したい処理のことをルーティングコールバックという。
ルーティングコールバックとDIコンテナ
ルーティングコールバックにはクラスの完全修飾名を渡すこともできる。
クラス名はcallable値ではないが、Containerによって自動的にインスタンス化される。
__invoke
を実装していること__invoke
の引数が$request, $argsであること__invoke
の返り値がResponseInterface
であること
インスタンス化してオブジェクトをコールバックとして渡すこともできるが、
そうするとすべてのActionクラスが事前にインスタンス化されてしまうので効率が悪い。
完全修飾名を渡す方式であれば、該当のルートのActionのみがインスタンス化される。
パラメータのフィルタリングとバリデーション
ruleメソッドを用いて、ルーティングパラメータの値をフィルタリングし、
特定の値のみ受け付けるよう制限を加えることが可能。やりすぎ注意。
ミドルウェア
ルーティングと各ルートにはMiddlewareを追加することができる。
Middlewareのオブジェクトか完全修飾名を渡すこと。
- あとから追加したMiddlewareのほうが外側で実行される=最後に追加したMiddlewareが一番はじめに実行される。
- ルーティングに追加されたMiddlewareは、全ルートに適用される。
- ルーティングに追加されたMiddlewareは、各ルートが持つMiddlewareより常に外側で実行される。
- ルーティングコールバックが一番内側で実行される。
オプショナルパターン
ノードが増減するルーティングパターンに同じActionを設定する場合、
下記のようにすべてのパターンを別個に設定することもできるが、
特にバリデーションやMiddlewareの設定を伴う場合に、記述が冗長になりやすい。
あってもなくてもいい部分を[]で囲むと一括で設定することができる。
ルートネームとパスの生成
ルートに名前を付けることで、そのルートのパスを別のActionで簡単に組み立てられるようになる。
ルートグループ
ルートをグループ化し、Middlewareを一括で登録することができる。
上記の例では/admin/products
と/admin/customers
に一括でAuthMiddleware
が適用される。
/admin/login
も/admin
配下のルートだが、グループには含まれていないのでAuthMiddleware
の適用外となる。
グループはネスト可能。
リクエストメソッドによってActionを分ける
同じルートパターンで異なるリクエストメソッドに別々のActionをセットできる。
通常のフォームではGETとPOSTしかないが、REST APIの設計で活用できる。
All versions of flat-route with dependencies
psr/http-message Version ^1.1 || ^2.0
psr/container Version ^2.0
psr/http-server-handler Version ^1.0
psr/http-server-middleware Version ^1.0
haikara/verifier Version ^0.1
haikara/middleware-stack Version ^0.1