ZF-215: Support for all URI characters in Route's default regex


Route should allow for all types of URI characters (as per RFC 3986).

Reported by Michael Sheakoski and Kirill Balyasnikov.

Here is the regex for full RFC 3986 support:

const DEFAULT_REGEX = '[a-z0-9\-\_\.\~\!\*\'\(\)\;\:\@\&\=\+\$\,\?\%\#\[\]]+';

All characters are accounted for except {{/}} for obvious reasons :) -Michael Sheakoski


Added DEFAULT_REGEX with RFC 3986 support

A quick question - should the Router also be responsible for decoding URI's - e.g. reverting My+Search+String back to My Search String - before passing values back to the Dispatcher token? This is taken care of automatically with _GET and _POST superglobals but not, as far as I can tell, with parameters supplied from the router.

I think it should be Zend_Http_Request's responsibility but since it's not here yet I'm simply not sure. It's a pretty easy thing to do and I have even prepared a unit test for such a case but there is still this hesitation.

While Zend_Http_Request is non-existent then I think the Router should definitely handle the responsibility. Otherwise it will potentially cause confusion.

Changing fix version to 0.6.0.

Now that the Request object exists it's again open for discussion. I'm not sure if it's a Router's responsibility to "url decode" Http_Request's parameters.

I don't see the reason for implementing reserved characters in the Router. It won't be fixed unless someone comes up with a real world use case.