UrlGeneratorServiceProvider

El UrlGeneratorServiceProvider ofrece un servicio para generar URL para las rutas con nombre.

Parámetros

Ninguno.

Servicios

  • url_generator: Una instancia del UrlGenerator, usando la RouteCollection proporcionada a través del servicio routes. Tiene un método generate, que toma el nombre de la ruta como argumento, seguido por un arreglo de parámetros de la ruta.

Registrando

$app->register(new Silex\Provider\UrlGeneratorServiceProvider());

Uso

El proveedor UrlGenerator ofrece un servicio url_generator:

$app->get('/', function () {
    return 'welcome to the homepage';
})
->bind('homepage');

$app->get('/hello/{name}', function ($name) {
    return "Hello $name!";
})
->bind('hello');

$app->get('/navigation', function () use ($app) {
    return '<a href="'.$app['url_generator']->generate('homepage').'">Home</a>'.
           ' | '.
           '<a href="'.$app['url_generator']->generate('hello', array('name' => 'Igor')).'">Hello Igor</a>';
});

Cuando usas Twig, puedes usar el servicio así:

{{ app.url_generator.generate('homepage') }}

Además, si utilizas Twig, tendrás acceso a las funciones path() y url():

{{ path('homepage') }}
{{ url('homepage') }} {# genera la url absoluta http://ejemplo.org/ #}
{{ path('hello', {name: [parcial]'Fabien']);
{{ url('hello', {name: 'Fabien'}) }} {# genera la url absoluta http://ejemplo.org/hello/Fabien #}

Peculiaridades

Silex\Application\UrlGeneratorTrait añade los siguientes atajos:

  • path: Genera una ruta.
  • url: Genera una dirección URL absoluta.
$app->path('homepage');
$app->url('homepage');
Bifúrcame en GitHub