You can clone with
HTTPS or Subversion.
It would be great if you could skip all persistent parameters all together instead of trying to set one by one as null, something like a reset flag you could pass in the options list which would pass to the router _prepareParams method, https://gist.github.com/3884585
What would be the use case for this?
Resolve conflicts between different routes with their own persistent params.
Administrator panel with it's route
array('admin' => true, 'library' => 'core', 'controller' => 'dashboard', 'action' => 'index', 'id' => null),
array('persist' => array('admin', 'library', 'controller')));
And you want to link to something to the front-end, let's say a page route
array('library' => 'pages', 'controller' => 'page', 'action' => 'view', 'slug' => null),
array('persist' => array('library', 'controller')));
You would have to set the admin param to null to make it work and that's ok.
$this->url(array('library' => 'pages', 'controller' => 'page', 'action' => 'view', 'admin' => null, 'slug' => $item->slug))
But imagine having a system like a cms/cmf where you could install libraries from various sources, it's impossible to resolve all persistent parameters conflicts. Let's say you have a contact-us plugin and you want to display a link in the header of all pages, the url would have to be hard-written because you don't know what conflicts may come up. That's where the reset flag comes in handy.
$this->url(array('library' => 'contact', 'controller' => 'form', 'action' => 'view'), array('reset' => true));
i'd agree - i had that use-case several times and find it tiring to set all these parameters to null
Got it, thanks for the feedback, guys.