The UrlGeneratorServiceProvider provides a service for generating URLs for named routes.
None.
$app->register(new Silex\Provider\UrlGeneratorServiceProvider());
The UrlGenerator provider provides a url_generator service:
$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>';
});
When using Twig, the service can be used like this:
{{ app.url_generator.generate('homepage') }}
Moreover, if you use Twig, you will have access to the path() and url() functions:
{{ path('homepage') }}
{{ url('homepage') }} {# generates the absolute url http://example.org/ #}
{{ path('hello', {name: 'Fabien'}) }}
{{ url('hello', {name: 'Fabien'}) }} {# generates the absolute url http://example.org/hello/Fabien #}
Silex\Application\UrlGeneratorTrait adds the following shortcuts:
$app->path('homepage');
$app->url('homepage');