ceive/app-router
应用程序路由
dev-master
2019-10-30 00:08 UTC
Requires
- ssilence/php-imap-client: dev-master
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is not auto-updated.
Last update: 2024-09-29 05:20:59 UTC
README
实体
-
计算单元(
匹配)- 可以访问
路径,之后还可以访问HTTPRequest
- 可以访问
-
路由器(
Router)- 更多被理解为主要的线性栈/路由集合
- 目前作为PatternResolver的源,用于在路由器中定义的路由
Router::addPlugin- 路由事件的插件(插件是一个自定义对象(stdClass),可以拥有监听器方法)onBegin($matching);- 在路由器计算开始前onConformed($matching, $route);- 在路由中匹配模板时onCheckEnv($matching, $route);- 在onConformed后检查环境onReached($matching, $route);- 在完全匹配并通过模板路径后onFinish($matching, $route);- 在onReached后完成路由事件栈onPrepareRenderParams($route, $params);- 准备渲染参数
-
路由(
Route)- 用于获取占位符名称的接口
- 计算
match对象Matching - 根据传递的参数作为占位符渲染模板,并进行预处理
- 用于自定义和扩展的关键方法
_matchingConfirmed(Matching $matching)- 模板参数可用,向Matching对象添加参数(绑定/转换)和链接_checkEnv(Matching $matching)- 检查环境,这里假设检查HTTP请求,如果失败可能抛出异常
需要连接ORM和映射以绑定ORM投影路径,选择路径上的所需对象。
将路由的绑定分为不同类型
-
静态
- 如果按标识符找不到对象,则发生不匹配级别的错误,这是类型
404 not found的错误
- 如果按标识符找不到对象,则发生不匹配级别的错误,这是类型
-
动态
可续路由- 如果按标识符找不到对象,则路由器将跳过当前不匹配的路由,转到下一个路由
预期的对HTTP请求的检查和反应
- SSL加密(
http|https) - 域名
名称/子域名/区域 - 请求方法(
Method: GET POST PUT HEAD OPTIONS) GET/POST请求参数- POST请求中的JSON/XML对象(代替POST参数)
- 混合模式
POST-params/文件/JSON|XML(multipart/form-data | multipart) - 头信息(《Accept | Accept-Encoding)
application/json text/html text/* - 防止意外的客户端请求和《反应正常化》(CSRF保护),例如
Accept: image/*对执行 CRUD 操作的控制器的语义控制不正确
向应用程序传递信号以进行反应(重定向/请求级别错误(BAD REQUEST))
brainstorm
- 应用程序位置/父级链
- 切换调度选项和活动系统组件的组成部分
- ORM集成(读取/元数据分区)以绑定等
- HTTP集成(请求属性、表单参数和控制器的参数)