$ composer require troublete/monty
<?php
require_once ' path/to/vendor/autoload.php ' ;
$ application = new Monty Application ();
$ application -> get (
' /request[/{someId}] ' ,
function ( Monty Request $ req , Monty Response $ res , $ someId ) {
// do some awesome stuff
return new Symfony Component HttpFoundation JsonResponse ([]);
}
);ルート解析は、@nikicで作成されたFastrouteパッケージに基づいているため、ほとんどの場合、Fastrouteが指定したルートを定義することができるはずです。ルートマッチングは、 @に設定されたDelimiterを使用してPCREを介して行われるため、ユーザー定義のRegexパラメーターが@と一致する場合は注意してください。ルート定義により、 []がマークされた定義の最後に変数パーツが許可されます。これが可能であるため、マッチングは子孫の複雑さの順に複数の正規表現を試み、最初のパターンマッチで戻ります。
有効なルーティング
/search/{searchId} => routing with parameter
/search/{searchId:d+} => routing with parameter with defined regex
/search[/{searchId}] => routing with optional parameter
/search/index[es] => routing with optional part
無効なルーティング
/search/index[es]/{searchId} => optional chunk in the middle
処理定義は、受信したリクエストと一致するとすぐに登録の順に処理されます。
さらに、モンティはリクエストと応答中心になるように設計されています。ドグマに従って、アプリケーションへのリクエストが一度処理されるため、ライフサイクル中に必要なものはすべてリクエストまたは応答オブジェクトに含まれています(または追加する必要があります)。
定義のハンドラーは、 callableの一連の配列であり、定義の一致で同期して実行されます。この「コールスタック」に統合される前または後に実行されるように登録されたMiddleWares。
応答オブジェクトがハンドラーに返される場合、プロセス応答として解釈され、リセットできません(ただし、変更されます)。
アプリケーションはMontyの主要なコンポーネントです。ルートハンドラー、ミドルウェアの登録、およびリクエストと応答の追加セットアップを処理します。通常、4つの異なるユースケースが含まれています。現在のリクエストプロセスの要求または応答オブジェクトにアクセスし、ルートハンドラーの登録、ライフサイクル中に実行されるミドルウェアの登録。
ユースケースメソッドに加えて、エイリアスメソッドのインターフェイスも含まれており、コードをより理解しやすく洗練されたコードにします。
このメソッドは、ディスパッチする必要があるリクエスト方法のコレクションに関する特定のルートの新しい要求ハンドラーを登録します。
| 口論 | タイプ | 説明 |
|---|---|---|
| $メソッド | 弦[] | 大文字でのリクエスト方法のコレクション。 |
| $ルート | 弦 | ハンドラーが登録されているルート。 |
| ... $ハンドラー | 呼び出す[] | 実行されるハンドラーのコレクション。 |
// ...
$ app -> handle (
[ ' GET ' ],
' /index ' ,
function ( $ req , $ res ) { /*...*/ },
function ( $ req , $ res ) { /*...*/ },
function ( $ req , $ res ) { /*...*/ }
// ...
);
// ... | 方法 | 説明 |
|---|---|
| all($ route、... $ handlers) | すべての要求方法に反応するエイリアスメソッド |
| get($ route、... $ handlers) | リクエストを取得するために反応するエイリアスメソッド |
| post($ route、... $ handlers) | 投稿リクエストに反応するエイリアスメソッド |
| head($ route、... $ handlers) | ヘッドリクエストに反応するエイリアスメソッド |
| オプション($ルート、... $ハンドラー) | オプションリクエストに反応するエイリアスメソッド |
| パッチ($ルート、... $ハンドラー) | パッチ要求に反応するエイリアスメソッド |
| put($ route、... $ handlers) | リクエストに反応するエイリアスメソッド |
| 削除($ route、... $ handlers) | リクエストを削除するために反応するエイリアスメソッド |
このメソッドは、要求方法に関係なく実行される追加のハンドラーを登録します。
| 口論 | タイプ | 説明 |
|---|---|---|
| $配置 | 整数 | リクエストライフサイクルの位置(アプリケーション:: prepend -before、application :: append -appled -abther)が実行される場合。 |
| ... $ハンドラー | 呼び出す[] | 実行されるハンドラーのコレクション。 |
// ...
$ app -> middleware (
Monty Application:: PREPEND ,
function ( $ req , $ res ) { /*...*/ },
function ( $ req , $ res ) { /*...*/ },
function ( $ req , $ res ) { /*...*/ }
// ...
);
// ... | 方法 | 説明 |
|---|---|
| 前(... $ハンドラー) | 実際のリクエスト処理の前に実行されたリクエストハンドラーを追加するエイリアスメソッド |
| 後(... $ハンドラー) | 実際のリクエスト処理後に実行されたリクエストハンドラーを追加するエイリアスメソッド |
このメソッドは、現在の要求オブジェクトを取得します。
この方法は、現在の応答オブジェクトを取得します。
リクエストオブジェクトは、プロセスの中心部分です。リクエスト中に必要なプロパティとサービスを追加する可能性が含まれています。その場合、リクエストオブジェクトは小さくなり、必要なときに必要な依存関係のみが登録されます。
リクエストIPを取得する方法。
要求されたコンテンツタイプのヘッダー値を取得する方法。
$ _filesパラメーターを取得する方法。
この方法は、リクエストに設定されたプロパティまたはサービスを取得するために使用できます。
| 口論 | タイプ | 説明 |
|---|---|---|
| ... $パラメーター | 混合 | パラメーターのコレクションは、セッターメソッドに長い間渡されました。 |
// ...
$ request -> get ( ' logger ' , new SomeDefault ());
$ request -> get ( ' property ' , ' some default value ' );
// ... monty requestオブジェクトに埋め込まれた生の要求を取得する方法。
プロトコルを含むHTTPホストを取得する方法。
要求方法が特定の値であるかどうかを確認する方法。
| 口論 | タイプ | 説明 |
|---|---|---|
| $メソッド | 弦 | 確認する方法を要求します。 |
送信されたリクエストが安全かどうかを確認する方法(https/ssl)。
要求パスを取得する方法。
スタック内の以前のハンドラーの返品値を取得する方法。
$ _GETパラメーターを取得する方法。
要求方法を取得する方法。
$ _POSTパラメーターを取得する方法。
ルートハンドラーインスタンスで一致するルートパラメーター値を取得する方法。
この方法を使用して、コールスタックに沿ってアクセスできるクラスインスタンスまたはプロパティをリクエストに追加できます。通常、メソッドは少なくとも2つのパラメーターを取ります。まず、プロパティ/サービスのIDを文字列として、次にスカラーまたはオブジェクト値を使用します。
乱雑なコードやリソースのバルキングを避けるために、アレイを要求プロパティとして設定することはできません。
| 口論 | タイプ | 説明 |
|---|---|---|
| ... $パラメーター | 混合 | パラメーターのコレクションは、セッターメソッドに長い間渡されました。 |
// ...
$ request -> set ( ' logger ' , new SomeLogger ()); // valid
$ request -> set ( ' property ' , ' some value ' ); // valid
$ request -> set ( ' not_possible ' , []); // invalid
// ... 以前のハンドラーリターンを設定する方法。
| 口論 | タイプ | 説明 |
|---|---|---|
| $値 | 混合 | 前のハンドラーの返品値。 |
リクエストに設定されたルートパラメーターを更新する方法。
| 口論 | タイプ | 説明 |
|---|---|---|
| $ params | 配列 | 設定するルートパラメーター。 |
応答オブジェクトは、一般にそれ自体を解決すると想定されます。つまり、それは、アプリケーション応答で定義された応答をどのようにレンダリングするかを処理する必要があります。 Symfony HTTPコンポーネント応答オブジェクトを単に使用するか、 Monty ResponseInterfaceを実装する必要がある独自のコンポーネントオブジェクトを定義できます。
ハンドラーは、ルートハンドラーの定義またはミドルウェアに登録されているcallableものとして定義されます。
ハンドラーは、単純なラムダ関数、閉鎖オブジェクト、クラスなどです...実際には呼び出される可能性があります。ここには制限はありません。
©2017 WilliEßer