Dziamid
Dziamid

Reputation: 11581

Custom url generator class

I am looking for a way to override the generation of the url for a specific route in Symfony2. In symfony 1.4 I used to do it like this:

RouteName:
  class: sfDoctrineRouteCollection
  options:
    model:                Model
    prefix_path:          /route/:id/:slug
    column:               id
    route_class:          CustomDoctrineRoute

class CustomDoctrineRoute extends sfDoctrineRoute
{
  public function generate($params, $context = array(), $absolute = false)
  {
    //custom logic on route params

    return parent::generate($params, $context, $absolute);
  }

}

Upvotes: 0

Views: 4024

Answers (1)

Alex
Alex

Reputation: 66

You can overwrite core Router class path:

<parameters>
    <parameter key="router.class">Company\Bundle\Router\CustomRouter</parameter>
</parameters>

Default Router class (Symfony\Bundle\FrameworkBundle\Routing\Router) have default options (see method setOptions()), you can set them in your app parameters and overwrite needed class, instead all Router:

router.options.generator_class:  Company\Bundle\Router\UrlGenerator

I hope this will solve your problem.

Upvotes: 2

Related Questions