This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/Routing
Fabien Potencier 2b60131275 merged branch Seldaek/router_esc (PR #1471)
Commits
-------

418d6a0 [Routing] Fix syntax error when dumping routes with single quotes in the requirements or pattern
2b5e22d [Routing] Fix ApacheDumper when a space appears in a default value
6c7f484 [Routing] Fix dumper so it doesn't print trailing whitespace
761724a [Routing] Adjust urlescaping rules, fixes #752

Discussion
----------

[Router] Bunch o' Fixes

The first commit changes the escaping rule to fix issues I had previously, and #752 as well, here's from the full commit message:

    Only + and % are now encoded in generated routes, since they are the only characters that, if not encoded, could cause problems/conflicts when decoded. Namely + turns into a space, and % followed by numbers could do funky things.

    The matcher decodes everything which works since nothing will have %NN without being escaped, and + are escaped as well.

Second commit is just a test fix for the first

Third and fourth are simply dumper escaping issues, nothing to argue about.

Note that all changes have had test cases added, and I spent a few hours torturing/testing all this stuff with both Apache and PHP dumpers, in many browsers, and with URLs as wonky as `/%01%02%03%04%05%06%07%08%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%20!%22$%25&%27%28%29*+,-./0123456789:;%3C=%3E@ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B|%7D~/baz` which essentially represent the 1-255 char range minus ? and #.

The only issues I really encountered after all the patches were applied is that Apache refuses to match `%22` (= `"`) and `*` in a url. I guess it's just because they're not allowed chars in windows paths, but | and < > works fine though. Anyway this works with the PHP dumper, and it didn't work either without my patches so it's not like I broke it, I'm just saying for the record.
2011-07-01 10:09:44 +02:00
..
Annotation [Routing] added missing @Annotation tag 2011-06-30 20:37:03 +02:00
Exception [Routing] added missing public @api 2011-06-14 15:40:43 +02:00
Generator [Routing] Adjust urlescaping rules, fixes #752 2011-06-29 03:39:54 +02:00
Loader [Routing] removed AnnotationGlobLoader 2011-06-17 18:18:03 +02:00
Matcher [Routing] Fix syntax error when dumping routes with single quotes in the requirements or pattern 2011-06-29 03:40:17 +02:00
CompiledRoute.php [Routing] moved protected to private 2011-03-23 19:25:56 +01:00
LICENSE added LICENSE files for the subtree repositories 2011-02-22 18:58:15 +01:00
RequestContext.php [Routing] tagged the public @api 2011-06-14 15:35:32 +02:00
RequestContextAwareInterface.php [Routing] tagged the public @api 2011-06-14 15:35:32 +02:00
Route.php [Routing] tagged the public @api 2011-06-14 15:35:32 +02:00
RouteCollection.php [Routing] tagged the public @api 2011-06-14 15:35:32 +02:00
RouteCompiler.php [Routing] fixed regression (/ should not be matched by /{foo} when foo has no default value) 2011-05-03 14:48:08 +02:00
RouteCompilerInterface.php replaced symfony-project.org by symfony.com 2011-03-06 12:40:06 +01:00
Router.php simplified cache warmers 2011-06-07 11:42:27 +02:00
RouterInterface.php replaced symfony-project.org by symfony.com 2011-03-06 12:40:06 +01:00