franzose / gimme-url
PHP League Route 的 URL 生成器。
v1.0
2019-08-13 14:10 UTC
Requires
- league/route: ^4.3
Requires (Dev)
- mockery/mockery: ^1.2
- phpunit/phpunit: ^8.2
This package is auto-updated.
Last update: 2024-09-14 02:46:08 UTC
README
Gimme URL 是为 League Route 库而设计的缺失 URL 生成器。它能够生成相对和绝对路径到命名路由。
安装
使用 Composer 安装 Gimme URL
composer install franzose/gimme-url
设置和用法
URL 生成器需要您提供 Router
和 RequestContext
实例。后者从 Psr\Http\Message\ServerRequestInterface
实例中收集信息,并用于构建到命名路由的绝对路径。
<?php use GimmeUrl\RequestContext; use GimmeUrl\Router; use GimmeUrl\UrlGenerator; use Zend\Diactoros\ServerRequestFactory; $router = new Router(); $router->get('/foo/{bar}', function () { // })->setName('foo_route'); // Let's say the request is secure and is made at example.com on 8080 port $request = ServerRequestFactory::fromGlobals($_SERVER, $_GET, $_POST, $_COOKIE, $_FILES); $context = RequestContext::fromRequest($request); $generator = new UrlGenerator($router, $context); // Then you'll get this $generator->relative('foo_route', ['bar' => '123']); // '/foo/123' $generator->relative('foo_route', ['bar' => '123', 'qux' => 'doo']); // '/foo/123?qux=doo' $generator->absolute('foo_route', ['bar' => '456']); // 'https://example.com:8080/foo/456' $generator->absolute('foo_route', ['bar' => '456', 'qux' => 'doo']); // 'https://example.com:8080/foo/456?qux=doo'