gimme url
The first release
gimme url est un générateur d'URL manquant pour la bibliothèque League Route. Il est capable de générer des chemins relatifs et absolus vers des routes nommées.
Utilisez Composer pour installer gimme url :
composer install franzose/gimme-url
Le générateur d'URL nécessite que vous fournissiez des instances Router
et RequestContext
. Ce dernier rassemble des informations à partir d'une instance PsrHttpMessageServerRequestInterface
et est utilisé pour créer des chemins absolus vers des routes nommées.
<?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'