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 :)
- 日志记录(虽然不确定是否需要?)
欢迎任何反馈