jidoka1902 / redirecting-fallbacks
redirecting-fallbacks 项目旨在提供一个标准化的方法来配置您的 HTTP 重定向。例如:而不是显示一个 404 页面,重定向到首页。
Requires
- php: ^7
Requires (Dev)
- phpunit/phpunit: ^6.3
This package is not auto-updated.
Last update: 2024-09-22 06:40:41 UTC
README
目标
"redirecting-fallbacks" 项目旨在为开发者提供一个标准的重定向配置框架。但这需要将一些集成工作整合到您选择的框架中。
因此,这只是一个非常轻量级的后端,用于进一步集成。
受众
这个库是为开发者准备的。
如果您有任何改进建议或只是发现了一个错误,请通过 github-issues 或甚至创建一个 pull-request 告诉我;()
Symfony
对于 Symfony 生态系统,已经提供了一个 集成。如果您想了解这个库如何在框架中工作,请查看那里。
解释的部分
RedirectResolver
RedirectResolvers 是这个小型项目的核心。它们需要一个配置来找出它们是否可以为 URL 路径提供一个重定向目标。
- SingleRedirectResolver 实现只需要配置一个重定向路径,每个请求的路由都将返回该目标。
- MultipleRedirectResolver 接受一个“路径”和“目标”的列表。因此,您可以指定重定向的层次结构。例如,对 /posts 的请求将给出与对 "/" 的请求不同的目标。
- 如果您有长的重定向配置列表或另一个需要相当长的时间来解析请求路径的 RedirectResolver,则有一个 CachedRedirectResolver 实现。这只是在您的集成中需要多次调用时缓存您的 RedirectResolver::resolve()。
但等等——这个库只解析配置?是的——您想监听哪个事件是您的集成内容。
RedirectResolverCache
RedirectResolverCache 只是 CachedRedirectResolver 中提取的缓存行为。默认行为是 ArrayCache,所以耗时的解析将被减少。但请随意创建您自己的实现,以符合您的需求;)
UrlGenerator
UrlGenerator 提供了可交换的行为,用于将配置的“目标”作为 RedirectResolver::resolve() 方法的输出。因此,您可以替换 PassthroughUrlGenerator(它只是将解析的目标一对一返回)。在 Symfony 集成中,这可以简单地更改为 Symfony 路由适配器。