- improved strategy pattern implementation in DynamicRoutePart to simplify creation of custom RoutePartHandlers.
- parsed URI pattern is not represented as uriPatternSegmentCollection anymore but as simple array of Route Parts making URI matching more flexible and easier to comprehend.
- added Interfaces RoutePartInterface and DynamicRoutePartInterface
- improved error handling for invalid URI patterns. Replaced F3\FLOW3\MVC\Exception\SuccessiveDynamicRouteParts by F3\FLOW3\MVC\Exception\InvalidUriPattern.
- lots of smaller tweaks
- BREAKING CHANGES:
- moved all Routes to global Configuration/Routes.yaml. Addresses #2126.
- dynamic Route Parts are no longer enclosed by square brackets but by curly brackets. Resolves #2342.
- removed support for query strings in URI pattern for now. It increased complexity and wasn't really needed yet.
- added support for optional route parts. Just put the respective parts in brackets in your URI pattern. NOTE: Dynamic Route Parts are no longer optional by default (even if a default value is set). Resolves #1790.