-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
Content renderer simplification #6829
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
My opinion:
|
This PR was merged into the master branch. Commits ------- cdf1d72 [FrameworkBundle] fixed requirement of the _controller palceholder for the proxy route (closes #6783) Discussion ---------- [FrameworkBundle] fixed requirement of the _controller palceholder for the proxy route (closes #6783) | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #6783 | License | MIT | Doc PR | n/a --------------------------------------------------------------------------- by vicb at 2013-01-18T10:23:06Z What about a UT ? --------------------------------------------------------------------------- by vicb at 2013-01-18T11:28:41Z and the syntax is wrong also ! --------------------------------------------------------------------------- by gimler at 2013-01-21T19:59:57Z same problem the sonata admin bundle use ``` {% render 'sonata.admin.controller.admin:getShortObjectDescriptionAction' %} ``` rewrite to ``` {% render controller('sonata.admin.controller.admin:getShortObjectDescriptionAction') %} ``` throws ``` An exception has been thrown during the rendering of a template ("Parameter "_controller" for route "_proxy" must match "[^/\.]++" ("sonata.admin.controller.admin:getShortObjectDescriptionAction" given) to generate a corresponding URL.") in "SonataAdminBundle:CRUD:edit.html.twig". ``` with the requirement fix it throws ``` An exception has been thrown during the rendering of a template ("Unable to parse the controller name "sonata".") in "SonataAdminBundle:CRUD:edit.html.twig". ``` --------------------------------------------------------------------------- by fabpot at 2013-01-22T06:40:14Z ok, I've updated the patch. There is now a static segment (`/for`) between the controller and the format, which should fix the problem. While thinking about this, there is another option, which might be even better: removing the need for the proxy route altogether and check for a defined path like `/_proxy`. It would remove the dependency on a Url Generator in the rendering strategy, and would not make the router proxy listener any more complex. --------------------------------------------------------------------------- by gimler at 2013-01-22T07:20:43Z +1 for me the patch works i will open a PR for sonata doctrine orm bundle ``` {% render controller('sonata.admin.controller.admin:getShortObjectDescriptionAction', {}, { 'code': sonata_admin.field_description.associationadmin.code, 'objectId': sonata_admin.field_description.associationadmin.id(sonata_admin.value), 'uniqid': sonata_admin.field_description.associationadmin.uniqid }) ``` --------------------------------------------------------------------------- by gimler at 2013-01-22T07:22:21Z When the proxy route is nessesary we should add a note into the upgrade guide. +1 for less complexesy --------------------------------------------------------------------------- by fabpot at 2013-01-22T08:02:12Z There is one issue with removing the proxy route: when generating a proxy URL, we need a Request instance, which is not always the case. I'm going to submit another PR to "fix" that first. --------------------------------------------------------------------------- by vicb at 2013-01-22T08:17:51Z > It would remove the dependency Paul leaves this body :) --------------------------------------------------------------------------- by Tobion at 2013-01-22T08:53:52Z I don't think removing the proxy route is good. That's the purpose of the routing system to handle generating and matching. Now if you do it manually it will probably show a bad approach to people to handle such stuff. Also people cannot see what routes are defined explicitly and use tools like `router:debug`. --------------------------------------------------------------------------- by fabpot at 2013-01-22T09:28:55Z @Tobion: see #6829 --------------------------------------------------------------------------- by fabpot at 2013-01-22T09:57:57Z I've again changed the route pattern to avoid any possible problems (even if a controller contains a `/`). --------------------------------------------------------------------------- by Tobion at 2013-01-22T10:16:03Z Can a controller contain `/`? It's neither a valid service nor a valid class name or? --------------------------------------------------------------------------- by mvrhov at 2013-01-22T10:40:26Z AFAIK yes, at least I used Namespace/SubController more then once...
|
||
$subRequest = Request::create($uri, 'get', array(), $cookies, array(), $server); | ||
if (null !== $request && $session = $request->getSession()) { | ||
if ($session = $request->getSession()) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the condition useful here ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, because you can disable the session entirely in FrameworkBundle
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also the phpdoc says it can return null.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I still don't see the pb with set(null) ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok, now I see :)
Shouldn't the class name be like |
$rootNode | ||
->children() | ||
->arrayNode('proxy') | ||
->info('proxy configuration') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
->addDefaultsIfNotSet() ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Like ESI (and many other things in Symfony), everything that is optional must be explicitly enabled (also because it has some performance overhead).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree but then it should be
<?php
->addDefaultsIfNotSet()
->canBeEnabled()
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is wrong. The addDefaultsIfNotSet()
will always enable the configuration even if it is not present. That's not what we want as explained in my previous comment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fabpot you are confusing canBeEnabled
and canBeDisabled
. In canBeEnabled
, the enabled
flag defaults to false
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've just talked with @vicb about this:
- the current configuration works just fine
- the one proposed by Victor does not work (as you need to explicitly set
enabled: true
to enable it).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well it works perfectly when I test, I'll submit a PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fabpot please add to your merger guidelines to never ever again merge a PR w/o [updated] UTs. I have to update many things for such a benign change !
@Tobion: This was actually the first name I had but I found it too long. It is indeed rendering a normal request, but only in the context of a master request. |
I found the correct term for what this is about: http://en.wikipedia.org/wiki/Transclusion |
The I don't like introducing the |
Also |
How about |
Also, |
|
Thanks for all your suggestions, I appreciate them, but what about the whole approach? Do you agree that it is better than the current one? I'd like to avoid the bikeshedding if the approach is not better. |
|
||
$reference->attributes['_controller'] = $reference->controller; | ||
|
||
$reference->query['path'] = http_build_query($reference->attributes, '', '&'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change this key to _path
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch, done
👍 for removing the router dependency. @Tobion perhaps request is the verb there? |
I'm also fine with making it independent from the routing component because routing is about making routes configurable with placeholders etc. for nice URLs. But this is not needed for a proxy feature. |
@fabpot Do you anticipate ever wanting a sub request to be handled differently based on HTTP method? Just thinking of possible reasons to continue using the routing component here… |
No, sub-requests only make sense for GET requests. In fact, we even enforce that in HttpContentRenderer. |
I'm not going to discuss names further in the context of this PR as it has already been discussed in the initial PR that introduced these classes and because this PR does not change anything to the meaning of these classes. If you think the names can be better, feel free to open a ticket and discuss names there. |
$rootNode | ||
->children() | ||
->arrayNode('router_proxy') | ||
->info('router proxy configuration') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
May be the info should be more specific and indicate that the router is used for the http renderers
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
If I understand correctly, both hsi and esi will generate path starting with "/_proxy", isn't it a problem wrt access_control ? should it be possible to configure a per strategy path ? |
Some more points:
|
Enabling the router proxy when using ESI si not required. The router proxy is "only" required when you use the Enabling each strategy individually is indeed a good idea (and that's more a general question as we could do the same for the translator loaders, or the service container loaders). Let's create another issue on this global topic. |
It should probably be in a wrapper class then ? |
The listener does not need to work with fragments as URLs as they are never part of the generated URL. |
The previous code allowed to pass null as a Request but that does not really make sense as rendering a sub-request can only happen from a master request. This was done to ease testing but that was a mistake.
This PR was merged into the master branch. Commits ------- 23f5145 renamed proxy to router_proxy e5135f6 [HttpKernel] renamed path to _path to avoid collision 3193a90 made the proxy path configurable ad82893 removed the need for a proxy route for rendering strategies b9f0e17 [HttpKernel] made the Request required when using rendering strategies Discussion ---------- Content renderer simplification | Q | A | ------------- | --- | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | n/a | License | MIT | Doc PR | symfony/symfony-docs#2179 Todo: - [x] submit a PR for documentation update The first commit makes the Request required when dealing with rendering strategies (see the commit why this was a bad idea to make it optional in the first place). The second commit removes the need for a proxy route and replaces it with the same system we have in the security component. The third commit makes the proxy path configurable (default to `/_proxy`). This PR has been triggered by a discussion on #6791. --------------------------------------------------------------------------- by fabpot at 2013-01-22T09:49:37Z My opinion: * The first commit should be merged. * For the second and third one, I don't have a strong opinion. One of the benefits that the content renderer and its strategies do not rely on the Routing component anymore. --------------------------------------------------------------------------- by fabpot at 2013-01-22T15:22:47Z Any comments? ping @Tobion @vicb --------------------------------------------------------------------------- by Tobion at 2013-01-22T16:07:15Z Shouldn't the class name be like `SubRequestRenderingStrategyInterface` because currently it does not say anything about what is rendered. `RenderingStrategyInterface` makes it look like it's for rendering a normal master request, i.e. templating. --------------------------------------------------------------------------- by fabpot at 2013-01-22T16:19:26Z @Tobion: This was actually the first name I had but I found it too long. It is indeed rendering a normal request, but only in the context of a master request. --------------------------------------------------------------------------- by Tobion at 2013-01-22T16:23:25Z I found the correct term for what this is about: http://en.wikipedia.org/wiki/Transclusion So it should probably be like `Symfony/Component/HttpKernel/Transclusion/TransclusionInterface` or `TransclusionStrategyInterface`. So the term `rendering` is misleading as it does not really render the subrequest, but only prints a reference to the subrequest. The rendering is done by ESI processor or hinclude etc. --------------------------------------------------------------------------- by fabpot at 2013-01-22T16:37:00Z The `RenderingStrategyInterface` does render a request and returns a Response. One of the strategy consist of returning an ESI tag, but this is still a Response. I don't like introducing the `Transclusion` word as (at least for me) it does not evoke anything. --------------------------------------------------------------------------- by Tobion at 2013-01-22T16:46:10Z Also `DefaultRenderingStrategy` is not saying anything. What is default? It should express that it directly includes the resource in the other (term `integrate` comes to my mind). --------------------------------------------------------------------------- by kriswallsmith at 2013-01-22T17:23:21Z How about `InlineRenderingStrategy`? --------------------------------------------------------------------------- by vicb at 2013-01-22T17:25:17Z @Tobion @kriswallsmith 👍 --------------------------------------------------------------------------- by kriswallsmith at 2013-01-22T17:26:17Z Also, `SubRequestStrategyInterface` may be more apparent (`InlineSubRequestStrategy`, `EsiSubRequestStrategy`…) --------------------------------------------------------------------------- by Tobion at 2013-01-22T18:10:19Z `SubRequestStrategyInterface` is missing the verb somehow. A strategy for what? @kriswallsmith as an English native speaker, is transclusion also not convenient for you? --------------------------------------------------------------------------- by fabpot at 2013-01-22T18:11:41Z Thanks for all your suggestions, I appreciate them, but what about the whole approach? Do you agree that it is better than the current one? I'd like to avoid the bikeshedding if the approach is not better. --------------------------------------------------------------------------- by kriswallsmith at 2013-01-22T18:22:47Z :+1: for removing the router dependency. @Tobion perhaps request is the verb there? --------------------------------------------------------------------------- by Tobion at 2013-01-22T19:51:20Z I'm also fine with making it independent from the routing component because routing is about making routes configurable with placeholders etc. for nice URLs. But this is not needed for a proxy feature. --------------------------------------------------------------------------- by kriswallsmith at 2013-01-22T20:13:48Z @fabpot Do you anticipate ever wanting a sub request to be handled differently based on HTTP method? Just thinking of possible reasons to continue using the routing component here… --------------------------------------------------------------------------- by fabpot at 2013-01-22T20:40:06Z No, sub-requests only make sense for GET requests. In fact, we even enforce that in HttpContentRenderer. --------------------------------------------------------------------------- by fabpot at 2013-01-23T06:51:54Z I'm not going to discuss names further in the context of this PR as it has already been discussed in the initial PR that introduced these classes and because this PR does not change anything to the meaning of these classes. If you think the names can be better, feel free to open a ticket and discuss names there. --------------------------------------------------------------------------- by vicb at 2013-01-23T07:48:36Z If I understand correctly, both hsi and esi will generate path starting with "/_proxy", isn't it a problem wrt access_control ? should it be possible to configure a per strategy path ? --------------------------------------------------------------------------- by fabpot at 2013-01-23T07:56:11Z @vicb: Yes, all strategies use the `/_proxy` path when the developer uses a controller reference. But the router proxy takes care of securing the route, so there is no need to do it yourself. --------------------------------------------------------------------------- by vicb at 2013-01-23T08:07:36Z @fabpot that's smart, I've missed it. Some questions though (they should be answered by UT I think - and might already have been, I have not checked) - Isn't there a pb with urlencoding in the listener ? - Would the listener work with fragments (`#...') ? --------------------------------------------------------------------------- by vicb at 2013-01-23T08:31:37Z Some more points: - Should we validate that the router_proxy is enabled when esi are enabled (early failure ?) - Should we be able to enable each strategy individually (ie no need to expose the signer when hsi are not used) --------------------------------------------------------------------------- by fabpot at 2013-01-23T09:58:45Z Enabling the router proxy when using ESI si not required. The router proxy is "only" required when you use the `controller` Twig function (or the equivalent in PHP -> `ControllerReference`). But we can probably throw an exception in the `ControllerReference` constructor if the proxy is not enabled. Enabling each strategy individually is indeed a good idea (and that's more a general question as we could do the same for the translator loaders, or the service container loaders). Let's create another issue on this global topic. --------------------------------------------------------------------------- by vicb at 2013-01-23T10:10:29Z > But we can probably throw an exception in the ControllerReference constructor if the proxy is not enabled. It should probably be in a wrapper class then ? --------------------------------------------------------------------------- by fabpot at 2013-01-23T12:45:36Z The listener does not need to work with fragments as URLs as they are never part of the generated URL.
@fabpot merged ? what about:
|
Indeed, I forgot to update the CHANGELOG (fixed now). |
I am talking about the config issue that is related to this PR. |
Sorry, I must have missed it. Which config issue? |
I haven't linked it because it should be in the outdated diff, you should be able to find it there. |
I have reopened all outdated comments and I don't see anything that were not taken into account. |
This PR was merged into the master branch. Commits ------- 7ab8be5 replaced the proxy route with a listener Discussion ---------- replaced the proxy route with a listener see symfony/symfony#6829
The internal route has been removed, see symfony/symfony#6829 for details.
This PR was merged into the master branch. Commits ------- 760d624 Update the security config with the latest Sf2.2 changes Discussion ---------- Update the security config with the latest Sf2.2 changes The internal route has been removed, see symfony/symfony#6829 for details.
This PR was squashed before being merged into the master branch (closes symfony#6852). Commits ------- fde7585 [DIC] Better handling of enableable configurations Discussion ---------- [DIC] Better handling of enableable configurations | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | BC breaks? | no, this feature has not been released yet | Deprecations? | no | Tests pass? | yes | Fixed tickets | - | License | MIT | Doc PR | - My definition of bug fix might be discussable. The thing which I think is not discussable is that this PR fixes the semantic - and I think it is important for a "semantic configuration": before this PR, some nodes had `->canBeDisabled` for nodes that were actually disabled by default. Those nodes now have `->canBeEnabled` which sounds right. **Edit: Jan 28, 2013** - history: See [the related comments](symfony#6829 (comment)). I think Symfony **must** get the configuration right as we can expect of lot of devs to use this as a template when writting their own configuration. @schmittjoh could you please give me your feedback on [this change](https://github.com/symfony/symfony/pull/6852/files#L4R224) considering [the rationale](https://github.com/symfony/symfony/pull/6852/files#L3R7). --------------------------------------------------------------------------- by stof at 2013-01-23T16:10:33Z @vicb your links are broken as they are pointing to the PR creation page --------------------------------------------------------------------------- by stof at 2013-01-23T16:10:55Z and to create a TODO list, it has to be a list first --------------------------------------------------------------------------- by vicb at 2013-01-23T16:31:10Z @stof thanks for reporting the broken links, they are fixed /cc @schmittjoh --------------------------------------------------------------------------- by vicb at 2013-01-23T16:31:50Z @Tobion please submit a PR to my repo, I don't have much time to work on this. Thanks ! --------------------------------------------------------------------------- by vicb at 2013-01-25T15:14:47Z @fabpot @schmittjoh I'd like your feedback on the latest commit, rationale is in the method phpDoc. It better matches what we do now and seem the most sensible thing to do. edit: with this you can no more disable the node explicitly, I have to find a better solution --------------------------------------------------------------------------- by schmittjoh at 2013-01-25T15:20:13Z Looks good. On Fri, Jan 25, 2013 at 4:15 PM, Victor Berchet <[email protected]>wrote: > @fabpot <https://github.com/fabpot> @schmittjoh<https://github.com/schmittjoh>I'd like your feedback on the latest commit, rationale is in the method > phpDoc. It better matches what we do now and seem the most sensible thing > to do. > > — > Reply to this email directly or view it on GitHub<symfony#6852 (comment)>. > > --------------------------------------------------------------------------- by vicb at 2013-01-28T14:37:57Z @fabpot I know I keep insisting on this one and I am sorry for that but I think this should be considered as a bug fix (see the PR header for details) and should be merged in 2.2. I think the Symfony core should be exemplary as it is used by many developers as a template when creating their own bundle. *This PR is no more a WIP and can be merged right now*. In addition to fixing the enableable nodes, this PR contain new UTs and some fixes to the code / tests. --------------------------------------------------------------------------- by fabpot at 2013-01-28T16:43:42Z @vicb As explained in a comment, this is not a BC break as this feature does not exist in 2.1. So, I can make the change to the CHANGELOG if you want after merging, or I can let you make the change. --------------------------------------------------------------------------- by vicb at 2013-01-28T16:46:33Z I am going to change it right now ! --------------------------------------------------------------------------- by vicb at 2013-01-28T16:46:56Z (and thanks for having checked this) --------------------------------------------------------------------------- by vicb at 2013-01-28T16:54:37Z @fabpot I have updated the changelog and the PR header. I am not sure if the commits should be squashed or not. On one side the multiple commits can help understand the changes but on the other side that's a lot of small commits which could pollute history. I let you choose what to do.
This PR was squashed before being merged into the master branch (closes #6852). Commits ------- fde7585 [DIC] Better handling of enableable configurations Discussion ---------- [DIC] Better handling of enableable configurations | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | BC breaks? | no, this feature has not been released yet | Deprecations? | no | Tests pass? | yes | Fixed tickets | - | License | MIT | Doc PR | - My definition of bug fix might be discussable. The thing which I think is not discussable is that this PR fixes the semantic - and I think it is important for a "semantic configuration": before this PR, some nodes had `->canBeDisabled` for nodes that were actually disabled by default. Those nodes now have `->canBeEnabled` which sounds right. **Edit: Jan 28, 2013** - history: See [the related comments](symfony/symfony#6829 (comment)). I think Symfony **must** get the configuration right as we can expect of lot of devs to use this as a template when writting their own configuration. @schmittjoh could you please give me your feedback on [this change](https://github.com/symfony/symfony/pull/6852/files#L4R224) considering [the rationale](https://github.com/symfony/symfony/pull/6852/files#L3R7). --------------------------------------------------------------------------- by stof at 2013-01-23T16:10:33Z @vicb your links are broken as they are pointing to the PR creation page --------------------------------------------------------------------------- by stof at 2013-01-23T16:10:55Z and to create a TODO list, it has to be a list first --------------------------------------------------------------------------- by vicb at 2013-01-23T16:31:10Z @stof thanks for reporting the broken links, they are fixed /cc @schmittjoh --------------------------------------------------------------------------- by vicb at 2013-01-23T16:31:50Z @Tobion please submit a PR to my repo, I don't have much time to work on this. Thanks ! --------------------------------------------------------------------------- by vicb at 2013-01-25T15:14:47Z @fabpot @schmittjoh I'd like your feedback on the latest commit, rationale is in the method phpDoc. It better matches what we do now and seem the most sensible thing to do. edit: with this you can no more disable the node explicitly, I have to find a better solution --------------------------------------------------------------------------- by schmittjoh at 2013-01-25T15:20:13Z Looks good. On Fri, Jan 25, 2013 at 4:15 PM, Victor Berchet <[email protected]>wrote: > @fabpot <https://github.com/fabpot> @schmittjoh<https://github.com/schmittjoh>I'd like your feedback on the latest commit, rationale is in the method > phpDoc. It better matches what we do now and seem the most sensible thing > to do. > > — > Reply to this email directly or view it on GitHub<symfony/symfony#6852 (comment)>. > > --------------------------------------------------------------------------- by vicb at 2013-01-28T14:37:57Z @fabpot I know I keep insisting on this one and I am sorry for that but I think this should be considered as a bug fix (see the PR header for details) and should be merged in 2.2. I think the Symfony core should be exemplary as it is used by many developers as a template when creating their own bundle. *This PR is no more a WIP and can be merged right now*. In addition to fixing the enableable nodes, this PR contain new UTs and some fixes to the code / tests. --------------------------------------------------------------------------- by fabpot at 2013-01-28T16:43:42Z @vicb As explained in a comment, this is not a BC break as this feature does not exist in 2.1. So, I can make the change to the CHANGELOG if you want after merging, or I can let you make the change. --------------------------------------------------------------------------- by vicb at 2013-01-28T16:46:33Z I am going to change it right now ! --------------------------------------------------------------------------- by vicb at 2013-01-28T16:46:56Z (and thanks for having checked this) --------------------------------------------------------------------------- by vicb at 2013-01-28T16:54:37Z @fabpot I have updated the changelog and the PR header. I am not sure if the commits should be squashed or not. On one side the multiple commits can help understand the changes but on the other side that's a lot of small commits which could pollute history. I let you choose what to do.
Since the request was made a required argument to the `render()` method in symfony#6829, this test became a duplicate of `testRenderFallbackToInlineStrategyIfEsiNotSupported()`.
…Renderer (jakzal) This PR was merged into the 2.3 branch. Discussion ---------- [HttpKernel] Remove a duplicate test for the EsiFragmentRenderer | Q | A | ------------- | --- | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | - | License | MIT | Doc PR | - Since the request was made a required argument to the `render()` method in #6829, this [test became a duplicate](https://github.com/fabpot/symfony/blob/23f51450bd5af35055db47b1787b5623b78df29b/src/Symfony/Component/HttpKernel/Tests/RenderingStrategy/EsiRenderingStrategyTest.php#L28-L38) of `testRenderFallbackToInlineStrategyIfEsiNotSupported()`. Commits ------- 44d57a3 [HttpKernel] Remove a duplicate test for the EsiFragmentRenderer
Todo:
The first commit makes the Request required when dealing with rendering strategies (see the commit why this was a bad idea to make it optional in the first place).
The second commit removes the need for a proxy route and replaces it with the same system we have in the security component.
The third commit makes the proxy path configurable (default to
/_proxy
).This PR has been triggered by a discussion on #6791.