Routing
Routing copied to clipboard
add a route enhancer by (sub)path
you could also build that logic into the enhancer instances. having it in DynamicRouter makes things more complicated - but might gain some performance by not calling too many enhancers.
actually the mappers do not really have to run in the context of the DynamicRouter .. they could just as well run after. then again they would then also run for static routes, where they make less sense.
indeed with @crell we discussed the idea of having a generic "route enhancement" step somewhere that adds information to the chosen route based on whatever. and the drupal people where thinking a lot about how to not call too many listeners unnecessarily. maybe he has some input here?
I don't know what controller mappers by subpath means, so it's hard to say. :-) My current best thought on the subject is best written up in how we're likely going to do access control: http://drupal.org/node/1793520#comment-6645440
Basically, when a route is being collected and stored for later lookup, we run a processing step on it that lets any system decide if they will care about the route on a request event. Then on request events, the matcher passes the full Route object back as a request attribute, and a mediator listener of some sort looks at that derived information on the route and passes the route off to those systems that indicated they would want to know about it.
I don't know if that's at all related to what you're discussing here, but it's my best guess as it looks like I'm coming in the middle of a conversation.
@Crell the job of the Routing system is to 1) match a route and then 2) add attribute values to the Request instance, so that the controller resolver can do its thing, which for the most part means setting _controller
. The concept of "mappers" in the routing is to infer this data from the route (and its attached content) that matched via the DynamicRouter and then set attributes. So mappers take care of step 2), after the RouteRepository took care of 1).
I would like to call this Route enhancer and allow any kind of coded logic that changes or adds to the route array.
----- Reply message ----- Von: "Lukas Kahwe Smith" [email protected] An: "symfony-cmf/Routing" [email protected] Cc: "David Buchmann" [email protected] Betreff: [Routing] add a controller mapper by (sub)path (#28) Datum: Fr., Okt. 26, 2012 09:11 @Crell the job of the Routing system is to 1) match a route and then 2) add attribute values to the Request instance, so that the controller resolver can do its thing, which for the most part means setting _controller. The concept of "mappers" in the routing is to infer this data from the route (and its attached content) that matched via the DynamicRouter and then set attributes. So mappers take care of step 2), after the RouteRepository took care of 1).
—
Reply to this email directly or view it on GitHub.
we now have the generic RouteEnhancer - you could write one that is configured with a sub path to do what you need.
@lsmith77 do you have a specific use case for this? anyway i think it can be added when we actually need it somewhere, should not pose architectural problems, right?
no .. and so its likely also not so important.
do we want to keep this open? i think what could make sense is to have a way to configure a DynamicRouter at a sub-path, so having a prefix for all routes this one tries to match. like "/cmf/my/route" would be resolved as "/my/route" by the dynamic router.
then you can solve this issue with such a router and configure it with specific enhancers.
i think it would be good to keep it open .. but improve the description.