ceive/app-router

应用程序路由

dev-master 2019-10-30 00:08 UTC

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|XMLmultipart/form-data | multipart
  • 头信息(《Accept | Accept-Encoding) application/json text/html text/*
  • 防止意外的客户端请求和《反应正常化》(CSRF保护),例如 Accept: image/* 对执行 CRUD 操作的控制器的语义控制不正确

向应用程序传递信号以进行反应(重定向/请求级别错误(BAD REQUEST))

brainstorm

  • 应用程序位置/父级链
  • 切换调度选项和活动系统组件的组成部分
  • ORM集成(读取/元数据分区)以绑定等
  • HTTP集成(请求属性、表单参数和控制器的参数)