M4nuObjectRouteBundle
This Symfony2 bundle allows to create routes from an object instead of parameters., (*1)
, (*2)
How to install ?
Add theses lines into your deps
[M4nuObjectRouteBundle]
git=git://github.com/M4nu/M4nuObjectRouteBundle.git
target=/bundles/M4nu/ObjectRouteBundle
Add autoloading
#app/autoload.php
$loader->registerNamespaces(array(
#...
'M4nu' => __DIR__.'/../vendor/bundles',
));
Register this bundle
#app/AppKernel.php
$bundles = array(
#...
new M4nu\ObjectRouteBundle\M4nuObjectRouteBundle(),
);
Install the deps
php bin/vendors install
Examples
Let's say we have a Category and a Message object :, (*3)
$category = new Category();
$category->setSlug('my-category');
$message = new Message();
$message->setSlug('my-message');
$message->setCategory($category);
And the corresponding route :, (*4)
message_show:
pattern: /message/{category.slug}/{slug}
Create the corresponding route
$router->generate('message_show', $message);
{{ path('message_show', message) }}
Will output: /message/my-category/my-message
, (*5)
Override parameters
$router->generate('message_show', array('_object' => $message, 'slug' => 'my-custom-slug'));
{{ path('message_show', {'_object': message, 'slug': 'my-custom-slug'}) }}
Will output: /message/my-category/my-custom-slug
, (*6)