$ 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