warpeddimension/gazpacho-soup

基于属性的 PHP 8 路由器

0.6.1 2021-09-17 12:41 UTC

This package is auto-updated.

Last update: 2024-09-17 18:38:15 UTC


README

pipeline coverage

一个针对 PHP 8.0+ 的基于属性的超级路由器。从头开始编写,以实现互操作性和易用性,使用 PHP 内置特性而不是替代方案。

特性

  • 完全基于属性,无需文档块
  • 基于控制器
    • 控制器便捷方法,用于以结构化 JSON 块输出数据
    • 路由可以响应多个 HTTP 请求方法
  • 自动控制器发现
    • 多个控制器根目录
    • 支持以下控制器发现方法
      • PSR4 文件树分析
      • 手动清单
      • composer.json 命名空间搜索
  • 自动参数提取 ($_FILE, $_POST, $_GET)
  • 基于正则表达式的 URL 路径参数
  • 可扩展的认证处理程序,设计用于与具有按路由上下文链接的任何内容结合使用
  • 路由错误是 PHP 异常。可以抛出尽可能多的异常。
    • 异常可以附加 HTTP 状态码。
  • 请求模型解析
    • 某些类可以放置在路由参数中,并直接使用而无需手动解析。
    • 使用 IRequestModel 将您自己的模型添加到解析器中
    • 使用 HandlerOverrideRegistry 添加您不控制的模型
    • 默认支持以下 PHP 类
      • DateTime
  • 参数转换器
    • 在提取参数数据时修改参数数据
    • 在路由操作之前过滤传入的数据,以增强安全性
    • 默认支持以下转换器
      • Base64Decode(解码 base64 字符串)
      • Base64ImageDecode(解码 base64 图片 URL 到 GDImage,需要 ext-gd 扩展)
  • 错误钩子
    • 在将错误发送到客户端之前拦截错误并转换它们,静音它们等。
    • 涵盖请求处理的各个阶段。

贡献

所有贡献都受欢迎!只需转到存储库并提交想法/更改。