vladbabii/leophpard

快速 URL 路由器过滤器,用于不跨越多个 URL 片段的正则表达式路由

dev-master 2017-01-16 07:24 UTC

This package is not auto-updated.

Last update: 2024-09-28 19:52:54 UTC


README

快速 URL 路由器过滤器,用于不跨越多个 URL 片段的正则表达式路由。

它采用以下格式的部分:a/b/c/d

和一个包含或不包含正则表达式的路由数组

a/c/d/f

some/account/{[0-9]{2,10}/

a/{[a-z]}/c/d

在这种情况下,列表将变为

a/{[a-z]}/c/d

您可以将此插入您喜欢的支持正则表达式匹配的路由器 - 它将只查看匹配一条规则而不是三条。

对于几百或几千条规则,速度会有明显提升。

只要您的正则表达式不跨越不同的 URL 片段(包含斜杠),您就可以使用它们。例如,以下不是使用此库的好 URL:some/url{[0-9]/data}/download

安装

  • 使用 composer install 并将最小稳定性设置为 dev
  • 下载 src/Filter.php 并使用它

用法

请参阅 test/FilterTest.php 或 test_random_benchmark/bench.php 以获取用法示例

性能

查看 test_random_benchmark:使用 1000 个随机的、由 5-7 个 [a-z] 或 {regexp} 片段组成的 URL,过滤非常明显的非匹配规则需要大约 2ms(0.0002s)。

进行中

后续改进

  • 添加更多过滤
  • 更好的 README :)
  • 日志记录(虽然不确定是否需要?)

欢迎任何反馈