Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitffddafc

Browse files
committed
feature#15196 [HttpKernel] make RequestStack parameter required (Tobion)
This PR was merged into the 3.0-dev branch.Discussion----------[HttpKernel] make RequestStack parameter required| Q | A| ------------- | ---| Bug fix? | no| New feature? | no| BC breaks? | yes| Deprecations? | no| Tests pass? | yes| Fixed tickets | n/a| License | MIT| Doc PR | n/aContinuation of#14634,#8904Commits-------a2e154d [HttpKernel] make RequestStack parameter required for classes that need it
2 parentsaff5af6 +a2e154d commitffddafc

File tree

5 files changed

+15
-133
lines changed

5 files changed

+15
-133
lines changed

‎src/Symfony/Component/HttpKernel/DependencyInjection/LazyLoadingFragmentHandler.php

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,26 +28,14 @@ class LazyLoadingFragmentHandler extends FragmentHandler
2828
/**
2929
* Constructor.
3030
*
31-
* RequestStack will become required in 3.0.
32-
*
3331
* @param ContainerInterface $container A container
3432
* @param RequestStack $requestStack The Request stack that controls the lifecycle of requests
3533
* @param bool $debug Whether the debug mode is enabled or not
3634
*/
37-
publicfunction__construct(ContainerInterface$container,$requestStack =null,$debug =false)
35+
publicfunction__construct(ContainerInterface$container,RequestStack$requestStack,$debug =false)
3836
{
3937
$this->container =$container;
4038

41-
if ((null !==$requestStack && !$requestStackinstanceof RequestStack) ||$debuginstanceof RequestStack) {
42-
$tmp =$debug;
43-
$debug =$requestStack;
44-
$requestStack =func_num_args() <3 ?null :$tmp;
45-
46-
@trigger_error('The'.__METHOD__.' method now requires a RequestStack to be given as second argument as'.__CLASS__.'::setRequest method will not be supported anymore in 3.0.',E_USER_DEPRECATED);
47-
}elseif (!$requestStackinstanceof RequestStack) {
48-
@trigger_error('The'.__METHOD__.' method now requires a RequestStack instance as'.__CLASS__.'::setRequest method will not be supported anymore in 3.0.',E_USER_DEPRECATED);
49-
}
50-
5139
parent::__construct($requestStack,array(),$debug);
5240
}
5341

‎src/Symfony/Component/HttpKernel/EventListener/LocaleListener.php

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,6 @@
2222
/**
2323
* Initializes the locale based on the current request.
2424
*
25-
* This listener works in 2 modes:
26-
*
27-
* * 2.3 compatibility mode where you must call setRequest whenever the Request changes.
28-
* * 2.4+ mode where you must pass a RequestStack instance in the constructor.
29-
*
3025
* @author Fabien Potencier <fabien@symfony.com>
3126
*/
3227
class LocaleListenerimplements EventSubscriberInterface
@@ -38,34 +33,12 @@ class LocaleListener implements EventSubscriberInterface
3833
/**
3934
* Constructor.
4035
*
41-
* RequestStack will become required in 3.0.
42-
*
4336
* @param RequestStack $requestStack A RequestStack instance
4437
* @param string $defaultLocale The default locale
4538
* @param RequestContextAwareInterface|null $router The router
46-
*
47-
* @throws \InvalidArgumentException
4839
*/
49-
publicfunction__construct($requestStack =null,$defaultLocale ='en',$router =null)
40+
publicfunction__construct(RequestStack$requestStack,$defaultLocale ='en',RequestContextAwareInterface$router =null)
5041
{
51-
if ((null !==$requestStack && !$requestStackinstanceof RequestStack) ||$defaultLocaleinstanceof RequestContextAwareInterface ||$routerinstanceof RequestStack) {
52-
$tmp =$router;
53-
$router =func_num_args() <2 ?null :$defaultLocale;
54-
$defaultLocale =$requestStack;
55-
$requestStack =func_num_args() <3 ?null :$tmp;
56-
57-
@trigger_error('The'.__METHOD__.' method now requires a RequestStack to be given as first argument as'.__CLASS__.'::setRequest method will not be supported anymore in 3.0.',E_USER_DEPRECATED);
58-
}elseif (!$requestStackinstanceof RequestStack) {
59-
@trigger_error('The'.__METHOD__.' method now requires a RequestStack instance as'.__CLASS__.'::setRequest method will not be supported anymore in 3.0.',E_USER_DEPRECATED);
60-
}
61-
62-
if (null !==$requestStack && !$requestStackinstanceof RequestStack) {
63-
thrownew \InvalidArgumentException('RequestStack instance expected.');
64-
}
65-
if (null !==$router && !$routerinstanceof RequestContextAwareInterface) {
66-
thrownew \InvalidArgumentException('Router must implement RequestContextAwareInterface.');
67-
}
68-
6942
$this->defaultLocale =$defaultLocale;
7043
$this->requestStack =$requestStack;
7144
$this->router =$router;
@@ -82,10 +55,6 @@ public function onKernelRequest(GetResponseEvent $event)
8255

8356
publicfunctiononKernelFinishRequest(FinishRequestEvent$event)
8457
{
85-
if (null ===$this->requestStack) {
86-
return;// removed when requestStack is required
87-
}
88-
8958
if (null !==$parentRequest =$this->requestStack->getParentRequest()) {
9059
$this->setRouterContext($parentRequest);
9160
}

‎src/Symfony/Component/HttpKernel/EventListener/ProfilerListener.php

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ class ProfilerListener implements EventSubscriberInterface
3232
protected$onlyException;
3333
protected$onlyMasterRequests;
3434
protected$exception;
35-
protected$requests =array();
3635
protected$profiles;
3736
protected$requestStack;
3837
protected$parents;
@@ -101,14 +100,7 @@ public function onKernelResponse(FilterResponseEvent $event)
101100

102101
$this->profiles[$request] =$profile;
103102

104-
if (null !==$this->requestStack) {
105-
$this->parents[$request] =$this->requestStack->getParentRequest();
106-
}elseif (!$master) {
107-
// to be removed when requestStack is required
108-
array_pop($this->requests);
109-
110-
$this->parents[$request] =end($this->requests);
111-
}
103+
$this->parents[$request] =$this->requestStack->getParentRequest();
112104
}
113105

114106
publicfunctiononKernelTerminate(PostResponseEvent$event)
@@ -130,7 +122,6 @@ public function onKernelTerminate(PostResponseEvent $event)
130122

131123
$this->profiles =new \SplObjectStorage();
132124
$this->parents =new \SplObjectStorage();
133-
$this->requests =array();
134125
}
135126

136127
publicstaticfunctiongetSubscribedEvents()

‎src/Symfony/Component/HttpKernel/EventListener/RouterListener.php

Lines changed: 9 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -30,56 +30,27 @@
3030
/**
3131
* Initializes the context from the request and sets request attributes based on a matching route.
3232
*
33-
* This listener works in 2 modes:
34-
*
35-
* * 2.3 compatibility mode where you must call setRequest whenever the Request changes.
36-
* * 2.4+ mode where you must pass a RequestStack instance in the constructor.
37-
*
3833
* @author Fabien Potencier <fabien@symfony.com>
3934
*/
4035
class RouterListenerimplements EventSubscriberInterface
4136
{
4237
private$matcher;
4338
private$context;
4439
private$logger;
45-
private$request;
4640
private$requestStack;
4741

4842
/**
4943
* Constructor.
5044
*
51-
* RequestStack will become required in 3.0.
52-
*
5345
* @param UrlMatcherInterface|RequestMatcherInterface $matcher The Url or Request matcher
5446
* @param RequestStack $requestStack A RequestStack instance
5547
* @param RequestContext|null $context The RequestContext (can be null when $matcher implements RequestContextAwareInterface)
5648
* @param LoggerInterface|null $logger The logger
5749
*
5850
* @throws \InvalidArgumentException
5951
*/
60-
publicfunction__construct($matcher,$requestStack =null,$context =null,$logger =null)
52+
publicfunction__construct($matcher,RequestStack$requestStack,RequestContext$context =null,LoggerInterface$logger =null)
6153
{
62-
if ($requestStackinstanceof RequestContext ||$contextinstanceof LoggerInterface ||$loggerinstanceof RequestStack) {
63-
$tmp =$requestStack;
64-
$requestStack =$logger;
65-
$logger =$context;
66-
$context =$tmp;
67-
68-
@trigger_error('The'.__METHOD__.' method now requires a RequestStack to be given as second argument as'.__CLASS__.'::setRequest method will not be supported anymore in 3.0.',E_USER_DEPRECATED);
69-
}elseif (!$requestStackinstanceof RequestStack) {
70-
@trigger_error('The'.__METHOD__.' method now requires a RequestStack instance as'.__CLASS__.'::setRequest method will not be supported anymore in 3.0.',E_USER_DEPRECATED);
71-
}
72-
73-
if (null !==$requestStack && !$requestStackinstanceof RequestStack) {
74-
thrownew \InvalidArgumentException('RequestStack instance expected.');
75-
}
76-
if (null !==$context && !$contextinstanceof RequestContext) {
77-
thrownew \InvalidArgumentException('RequestContext instance expected.');
78-
}
79-
if (null !==$logger && !$loggerinstanceof LoggerInterface) {
80-
thrownew \InvalidArgumentException('Logger must implement LoggerInterface.');
81-
}
82-
8354
if (!$matcherinstanceof UrlMatcherInterface && !$matcherinstanceof RequestMatcherInterface) {
8455
thrownew \InvalidArgumentException('Matcher must either implement UrlMatcherInterface or RequestMatcherInterface.');
8556
}
@@ -96,33 +67,27 @@ public function __construct($matcher, $requestStack = null, $context = null, $lo
9667

9768
privatefunctionsetCurrentRequest(Request$request =null)
9869
{
99-
if (null !==$request &&$this->request !==$request) {
70+
if (null !==$request) {
10071
$this->context->fromRequest($request);
10172
}
102-
103-
$this->request =$request;
10473
}
10574

75+
/**
76+
* After a sub-request is done, we need to reset the routing context to the parent request so that the URL generator
77+
* operates on the correct context again.
78+
*
79+
* @param FinishRequestEvent $event
80+
*/
10681
publicfunctiononKernelFinishRequest(FinishRequestEvent$event)
10782
{
108-
if (null ===$this->requestStack) {
109-
return;// removed when requestStack is required
110-
}
111-
11283
$this->setCurrentRequest($this->requestStack->getParentRequest());
11384
}
11485

11586
publicfunctiononKernelRequest(GetResponseEvent$event)
11687
{
11788
$request =$event->getRequest();
11889

119-
// initialize the context that is also used by the generator (assuming matcher and generator share the same context instance)
120-
// we call setCurrentRequest even if most of the time, it has already been done to keep compatibility
121-
// with frameworks which do not use the Symfony service container
122-
// when we have a RequestStack, no need to do it
123-
if (null !==$this->requestStack) {
124-
$this->setCurrentRequest($request);
125-
}
90+
$this->setCurrentRequest($request);
12691

12792
if ($request->attributes->has('_controller')) {
12893
// routing is already done

‎src/Symfony/Component/HttpKernel/Fragment/FragmentHandler.php

Lines changed: 3 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,6 @@
2323
* This class handles the rendering of resource fragments that are included into
2424
* a main resource. The handling of the rendering is managed by specialized renderers.
2525
*
26-
* This listener works in 2 modes:
27-
*
28-
* * 2.3 compatibility mode where you must call setRequest whenever the Request changes.
29-
* * 2.4+ mode where you must pass a RequestStack instance in the constructor.
30-
*
3126
* @author Fabien Potencier <fabien@symfony.com>
3227
*
3328
* @see FragmentRendererInterface
@@ -36,38 +31,17 @@ class FragmentHandler
3631
{
3732
private$debug;
3833
private$renderers =array();
39-
private$request;
4034
private$requestStack;
4135

4236
/**
4337
* Constructor.
4438
*
45-
* RequestStack will become required in 3.0.
46-
*
4739
* @param RequestStack $requestStack The Request stack that controls the lifecycle of requests
4840
* @param FragmentRendererInterface[] $renderers An array of FragmentRendererInterface instances
4941
* @param bool $debug Whether the debug mode is enabled or not
5042
*/
51-
publicfunction__construct($requestStack =null,$renderers =array(),$debug =false)
43+
publicfunction__construct(RequestStack$requestStack,array$renderers =array(),$debug =false)
5244
{
53-
if (is_array($requestStack)) {
54-
$tmp =$debug;
55-
$debug =func_num_args() <2 ?false :$renderers;
56-
$renderers =$requestStack;
57-
$requestStack =func_num_args() <3 ?null :$tmp;
58-
59-
@trigger_error('The'.__METHOD__.' method now requires a RequestStack to be given as first argument as'.__CLASS__.'::setRequest method will not be supported anymore in 3.0.',E_USER_DEPRECATED);
60-
}elseif (!$requestStackinstanceof RequestStack) {
61-
@trigger_error('The'.__METHOD__.' method now requires a RequestStack instance as'.__CLASS__.'::setRequest method will not be supported anymore in 3.0.',E_USER_DEPRECATED);
62-
}
63-
64-
if (null !==$requestStack && !$requestStackinstanceof RequestStack) {
65-
thrownew \InvalidArgumentException('RequestStack instance expected.');
66-
}
67-
if (!is_array($renderers)) {
68-
thrownew \InvalidArgumentException('Renderers must be an array.');
69-
}
70-
7145
$this->requestStack =$requestStack;
7246
foreach ($renderersas$renderer) {
7347
$this->addRenderer($renderer);
@@ -111,7 +85,7 @@ public function render($uri, $renderer = 'inline', array $options = array())
11185
thrownew \InvalidArgumentException(sprintf('The "%s" renderer does not exist.',$renderer));
11286
}
11387

114-
if (!$request =$this->getRequest()) {
88+
if (!$request =$this->requestStack->getCurrentRequest()) {
11589
thrownew \LogicException('Rendering a fragment can only be done when handling a Request.');
11690
}
11791

@@ -133,7 +107,7 @@ public function render($uri, $renderer = 'inline', array $options = array())
133107
protectedfunctiondeliver(Response$response)
134108
{
135109
if (!$response->isSuccessful()) {
136-
thrownew \RuntimeException(sprintf('Error when rendering "%s" (Status code is %s).',$this->getRequest()->getUri(),$response->getStatusCode()));
110+
thrownew \RuntimeException(sprintf('Error when rendering "%s" (Status code is %s).',$this->requestStack->getCurrentRequest()->getUri(),$response->getStatusCode()));
137111
}
138112

139113
if (!$responseinstanceof StreamedResponse) {
@@ -142,9 +116,4 @@ protected function deliver(Response $response)
142116

143117
$response->sendContent();
144118
}
145-
146-
privatefunctiongetRequest()
147-
{
148-
return$this->requestStack ?$this->requestStack->getCurrentRequest() :$this->request;
149-
}
150119
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp