gimme url
The first release
gimme urlは、リーグ ルート ライブラリの URL ジェネレーターがありません。名前付きルートへの相対パスと絶対パスを生成できます。
Composer を使用してgimme urlをインストールします。
composer install franzose/gimme-url
URL ジェネレーターでは、 Router
とRequestContext
インスタンスを提供する必要があります。後者はPsrHttpMessageServerRequestInterface
インスタンスから情報を収集し、名前付きルートへの絶対パスを構築するために使用されます。
<?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'