stack / url-map
该软件包已被放弃,不再维护。没有建议替代包。
URL 映射中间件。
v1.2.0
2019-06-20 08:03 UTC
Requires
- php: ^7.1
- symfony/http-foundation: ~2.1|~3.0|~4.0
- symfony/http-kernel: ~2.1|~3.0|~4.0
Requires (Dev)
- phpunit/phpunit: ~7.0
- silex/silex: ^2.0
- stack/builder: ^1.0
- stack/callable-http-kernel: ^1.0
This package is not auto-updated.
Last update: 2024-08-03 13:33:18 UTC
README
UrlMap
类接收一个将路径映射到应用程序的数组,并相应地分配。这个类可以插入到中间件堆栈构建器中,例如 stack/builder。
安装
使用 Composer 安装
$ composer require stack/url-map
示例
假设我们有一个 Silex 应用程序,并想在子路径 /blog
映射一个实现 HttpKernelInterface 的博客应用程序。
<?php use Symfony\Component\HttpFoundation\Request; use Silex\Application; $app = new Application(); $app->get('/', function () { return "Main Application!"; }); $blog = new Application(); $blog->get('/', function () { return "This is the blog!"; }); $map = [ "/blog" => $blog ]; $app = (new Stack\Builder()) ->push('Stack\UrlMap', $map) ->resolve($app); $request = Request::createFromGlobals(); $response = $app->handle($request); $response->send(); $app->terminate($request, $response);
如果你现在导航到 /blog
,你应该在浏览器中看到 This is the blog!
。
UrlMap
会覆盖 SCRIPT_NAME
、SCRIPT_FILENAME
和 PHP_SELF
以指向映射的路径。这也确保了路径信息被剥离。
这也意味着使用 Symfony 路由组件进行路由和 URL 生成的应用程序不需要任何适配。
使用其他路由方式的应用程序应在生成的 URL 前缀返回请求的 getBaseUrl()
方法的结果。URL 映射还设置了一个 stack.url_map.prefix
请求属性,如果您不想依赖于请求的基本 URL,则可以使用该属性。