ZF-6533: Router begins to treat '@' as a special character in version 1.8, which should be noted in "Migrating from Previous Versions" section
Description
Zend_Controller_Router_Route used to treat '@' as a normal character, so I use it like 'user' => new Zend_Controller_Router_Route('@/:user_name/*', array('module' => $defaultModuleName, 'controller' => 'user')), it works on zf1.7 with http://example.com/@/your_name.
In 1.8, zf treats '@' as a marker of translated segment, so the above code does not work but throws an exception. http://framework.zend.com/manual/en/…
To make it work as same as 1.7, I need to modify strangely like the following. 'user' => new Zend_Controller_Router_Route('@/:user_name/*', array('module' => $defaultModuleName, 'controller' => 'user'), array(), new Zend_Translate('array', array('' => '@'))),
I do not know it's the great way or not, but anyway this behavior change leads a backword-compatibility break, so that it should be noted in the migrating section in the document. http://framework.zend.com/manual/en/…
Comments
Posted by Ben Scholzen (dasprid) on 2009-05-05T01:23:05.000+0000
Except mentioning that in the migration chapter, we could also allow escaping special chars (being colon ":" and at "@" in the beginning of a segment). Thus you would be able to use them again without a dirty workaround.
Posted by twk (twk) on 2009-05-05T01:50:59.000+0000
Maybe that's right, but I think every zf change that the zf-user needs to change his/her code should be noted in the migration chapter. Even if you have introduce the escape character (or a way to change special characters), zf-user needs a small mod to add an escape character, so still it should be noted in the migration chapter.
Posted by Ben Scholzen (dasprid) on 2009-05-05T02:35:07.000+0000
Whoops, I meant "Beside mentioning that..."
Posted by Ben Scholzen (dasprid) on 2009-05-09T09:34:24.000+0000
Escaping for beginning special characters is now :: and @@
Posted by twk (twk) on 2009-05-10T06:59:28.000+0000
http://framework.zend.com/code/browse/…
Posted by Dolf Schimmel (Freeaqingme) (freak) on 2009-05-10T07:03:42.000+0000
Yes, that is what's meant. The typo was solved yesterday, and will be put online within a few days (probably with the release of 1.8.1).
Closing for now.