$ 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 ([]);
}
);路由解析基於創建的FastRoute軟件包是@nikic,因此在大多數情況下,應該可以按照FastRoute指定的路由來定義路由。路由匹配是通過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
處理定義將在與收到的請求匹配後立即按照註冊順序進行處理,然後將其派遣,返回並因此關閉該過程。
另外,Monty旨在以要求和響應為中心,遵循教條,將一旦處理一旦處理,以便將生命週期期間所需的所有內容都包括在請求或響應對像中。
定義上的處理程序是callable s的數組,將按定義匹配中的順序執行。在此“呼叫堆棧”中集成之前或之後註冊的Middlewares。
如果在處理程序中返迴響應對象,則將其解釋為過程響應,不能重置(但修改)。
該應用是Monty的主要組成部分。它將處理路由處理程序,中間Wares的註冊以及請求和響應的其他設置。它通常包含四個不同的用例。訪問當前請求過程的請求或響應對象,註冊路由處理程序並註冊將在生命週期期間執行的中間件。
除了用例外,它還包含一個別名方法的接口,以使您的編寫代碼更加易於理解和時尚。
此方法將新的請求處理程序註冊有關應派遣的請求方法的特定路線的新請求處理程序。
| 爭論 | 類型 | 描述 |
|---|---|---|
| $方法 | 細繩[] | 大寫方法收集請求方法。 |
| $路線 | 細繩 | 註冊處理程序的路線。 |
| ... $處理程序 | 可呼叫[] | 將執行的處理者的收集。 |
// ...
$ app -> handle (
[ ' GET ' ],
' /index ' ,
function ( $ req , $ res ) { /*...*/ },
function ( $ req , $ res ) { /*...*/ },
function ( $ req , $ res ) { /*...*/ }
// ...
);
// ... | 方法 | 描述 |
|---|---|
| 所有($路線,... $處理程序) | 別名方法將對所有請求方法做出反應 |
| 獲取($路線,... $處理程序) | 別名方法將反應以獲取請求 |
| 帖子($路線,... $處理程序) | 別名方法會對發布請求做出反應 |
| 頭($路線,... $處理程序) | 別名方法會對頭部請求做出反應 |
| 選項($路線,... $處理程序) | 別名方法將對選項請求做出反應 |
| 補丁($ ROUTE,... $處理程序) | 別名方法將對補丁請求做出反應 |
| put($路線,... $處理程序) | 別名方法會反應提出請求 |
| 刪除($ ROUTE,... $處理程序) | 會反應刪除請求的別名方法 |
此方法會註冊其他處理程序,這些處理程序將在不考慮請求方法的情況下執行。
| 爭論 | 類型 | 描述 |
|---|---|---|
| $放置 | 整數 | 請求生命週期位置(應用程序:: prepent-之前,應用程序:: Append-之後)應執行處理程序。 |
| ... $處理程序 | 可呼叫[] | 將執行的處理者的收集。 |
// ...
$ app -> middleware (
Monty Application:: PREPEND ,
function ( $ req , $ res ) { /*...*/ },
function ( $ req , $ res ) { /*...*/ },
function ( $ req , $ res ) { /*...*/ }
// ...
);
// ... | 方法 | 描述 |
|---|---|
| 之前(... $處理程序) | 別名方法將添加在實際請求處理之前執行的請求處理程序 |
| 之後(... $處理程序) | 別名方法將添加實際請求處理後執行的請求處理程序 |
此方法檢索當前請求對象。
此方法檢索當前響應對象。
請求對像是過程的中心部分。它包含在請求期間附加必要的物業和服務的可能性。在處理該請求對象的情況下,請在需要時保持小且只需要必要的依賴項。
檢索請求IP的方法。
檢索所請求的內容類型標頭值的方法。
檢索$ _files參數的方法。
此方法可用於檢索設置為請求的屬性或服務。
| 爭論 | 類型 | 描述 |
|---|---|---|
| ... $參數 | 混合 | 參數的集合傳遞給了Setter方法。 |
// ...
$ request -> get ( ' logger ' , new SomeDefault ());
$ request -> get ( ' property ' , ' some default value ' );
// ... 檢索嵌入在 monty 請求對像中的原始請求的方法。
檢索包括協議的HTTP主機的方法。
檢查請求方法是否是特定值的方法。
| 爭論 | 類型 | 描述 |
|---|---|---|
| $方法 | 細繩 | 請求檢查方法。 |
檢查發送請求是否安全的方法(HTTPS/SSL)。
檢索請求路徑的方法。
檢索堆棧中上一個處理程序的返回值的方法。
檢索$ _get參數的方法。
檢索請求方法的方法。
檢索$ _ post參數的方法。
通過路由處理程序實例檢索路由參數值匹配的方法。
此方法可用於將類實例或屬性添加到可以沿呼叫堆棧訪問的請求中。通常,該方法至少採用兩個參數,首先將屬性/服務的ID作為字符串,其次是標量或對象值。
不允許將數組設置為請求屬性,以避免凌亂的代碼和資源構成。
| 爭論 | 類型 | 描述 |
|---|---|---|
| ... $參數 | 混合 | 參數的集合傳遞給了Setter方法。 |
// ...
$ request -> set ( ' logger ' , new SomeLogger ()); // valid
$ request -> set ( ' property ' , ' some value ' ); // valid
$ request -> set ( ' not_possible ' , []); // invalid
// ... 設置上一個處理程序返回的方法。
| 爭論 | 類型 | 描述 |
|---|---|---|
| $值 | 混合 | 上一個處理程序的返回值。 |
將設置為請求的路由參數更新的方法。
| 爭論 | 類型 | 描述 |
|---|---|---|
| $參數 | 大批 | 要設置的路由參數。 |
通常假定響應對象可以自行解決 - 這意味著應處理應用程序響應中定義的響應的方式。您可以簡單地使用Symfony HTTP組件響應對象,也可以定義自己需要實現 Monty ResponseInterface的對象。
處理程序定義為在路由處理程序定義或中間件中註冊的callable 。
處理程序可以是簡單的lambda功能,閉合對象,類,...實際上可以調用的任何東西。這裡沒有限制。
©2017 WilliEßer