El UrlGeneratorServiceProvider ofrece un servicio para generar URL para las rutas con nombre.
Ninguno.
$app->register(new Silex\Provider\UrlGeneratorServiceProvider());
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 #}
Silex\Application\UrlGeneratorTrait añade los siguientes atajos:
$app->path('homepage');
$app->url('homepage');