A chain is a single route made up of multiple routes. To achieve what you
want, add both the route and the chain to the router and test the route
method. - pw

On Thu, Oct 22, 2009 at 10:55 AM, Tim Fountain <[email protected]> wrote:

> I've having some trouble with route chains when the last route in the chain
> contains only optional variables. E.g. given these two example routes:
>
> $firstRoute = new Zend_Controller_Router_Route_Static('foo/bar');
> $secondRoute = new Zend_Controller_Router_Route(':action', array(
>     'module' => 'test',
>     'controller' => 'index',
>     'action' => 'index'
> ));
>
> $chain = new Zend_Controller_Router_Route_Chain();
> $chain->chain($firstRoute)
>     ->chain($secondRoute);
>
>
> This:
>
> $request = new Zend_Controller_Router_ChainTest_Request('
> http://example.com/foo/bar/wibble' <http://example.com/foo/bar/wibble%27>
> );
> var_dump($chain->match($request));
>
> works as expected, however:
>
> $request = new Zend_Controller_Router_ChainTest_Request('
> http://example.com/foo/bar);
> var_dump($chain->match($request));
>
> outputs false, even though this is a perfectly valid route. Having looked
> at the route chain class, it seems that if it runs out of request before
> it's finished checking all the routes it just returns no match.
>
> Obviously my code above is a contrived example, as the two routes could
> easily be combined; but I have some custom route classes for hierarchical
> routing (/category/subcategory etc.) which would be difficult to merge.
>
> Is this worth opening an issue for, am I better off just creating my own
> route chain class, or am I misunderstanding how route chains are supposed to
> be used?
>
> --
> Tim Fountain
> http://tfountain.co.uk/
>

Reply via email to