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

Appearance settings

Commit aca1686

Browse filesBrowse files
committed
Merge branch '2.3' into 2.4
* 2.3: added missing @deprecated tag Fixed recursion level incrementing in FlattenException::flattenArgs(). [HttpKernel] fixed wrong reference in TraceableEventDispatcher Conflicts: src/Symfony/Component/HttpKernel/Debug/TraceableEventDispatcher.php
2 parents 3d91128 + 6a4d765 commit aca1686
Copy full SHA for aca1686

File tree

Expand file treeCollapse file tree

3 files changed

+38
-32
lines changed
Filter options
Expand file treeCollapse file tree

3 files changed

+38
-32
lines changed

‎src/Symfony/Bundle/TwigBundle/Extension/ActionsExtension.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/TwigBundle/Extension/ActionsExtension.php
+2Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
* Twig extension for Symfony actions helper
1919
*
2020
* @author Fabien Potencier <fabien@symfony.com>
21+
*
22+
* @deprecated Deprecated in 2.2, to be removed in 3.0.
2123
*/
2224
class ActionsExtension extends \Twig_Extension
2325
{

‎src/Symfony/Component/Debug/Exception/FlattenException.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Debug/Exception/FlattenException.php
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ private function flattenArgs($args, $level = 0)
249249
if ($level > 10) {
250250
$result[$key] = array('array', '*DEEP NESTED ARRAY*');
251251
} else {
252-
$result[$key] = array('array', $this->flattenArgs($value, ++$level));
252+
$result[$key] = array('array', $this->flattenArgs($value, $level + 1));
253253
}
254254
} elseif (null === $value) {
255255
$result[$key] = array('null', null);

‎src/Symfony/Component/HttpKernel/Debug/TraceableEventDispatcher.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/HttpKernel/Debug/TraceableEventDispatcher.php
+35-31Lines changed: 35 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ class TraceableEventDispatcher implements EventDispatcherInterface, TraceableEve
3535
private $dispatcher;
3636
private $wrappedListeners = array();
3737
private $firstCalledEvent = array();
38-
private $id;
3938
private $lastEventId = 0;
4039

4140
/**
@@ -124,9 +123,9 @@ public function dispatch($eventName, Event $event = null)
124123
$event = new Event();
125124
}
126125

127-
$this->id = $eventId = ++$this->lastEventId;
126+
$eventId = ++$this->lastEventId;
128127

129-
$this->preDispatch($eventName, $event);
128+
$this->preDispatch($eventName, $eventId, $event);
130129

131130
$e = $this->stopwatch->start($eventName, 'section');
132131

@@ -138,16 +137,13 @@ public function dispatch($eventName, Event $event = null)
138137

139138
$this->dispatcher->dispatch($eventName, $event);
140139

141-
// reset the id as another event might have been dispatched during the dispatching of this event
142-
$this->id = $eventId;
143-
144140
unset($this->firstCalledEvent[$eventName]);
145141

146142
if ($e->isStarted()) {
147143
$e->stop();
148144
}
149145

150-
$this->postDispatch($eventName, $event);
146+
$this->postDispatch($eventName, $eventId, $event);
151147

152148
return $event;
153149
}
@@ -169,7 +165,7 @@ public function getNotCalledListeners()
169165

170166
foreach ($this->getListeners() as $name => $listeners) {
171167
foreach ($listeners as $listener) {
172-
$info = $this->getListenerInfo($listener, $name);
168+
$info = $this->getListenerInfo($listener, null, $name);
173169
if (!isset($this->called[$name.'.'.$info['pretty']])) {
174170
$notCalled[$name.'.'.$info['pretty']] = $info;
175171
}
@@ -199,24 +195,24 @@ public function __call($method, $arguments)
199195
* Whenever Symfony will require PHP 5.4, this could be changed
200196
* to a proper private method.
201197
*/
202-
public function logSkippedListeners($eventName, Event $event, $listener)
198+
public function logSkippedListeners($eventName, $eventId, Event $event, $listener)
203199
{
204200
if (null === $this->logger) {
205201
return;
206202
}
207203

208-
$info = $this->getListenerInfo($listener, $eventName);
204+
$info = $this->getListenerInfo($listener, $eventId, $eventName);
209205

210206
$this->logger->debug(sprintf('Listener "%s" stopped propagation of the event "%s".', $info['pretty'], $eventName));
211207

212208
$skippedListeners = $this->getListeners($eventName);
213209
$skipped = false;
214210

215211
foreach ($skippedListeners as $skippedListener) {
216-
$skippedListener = $this->unwrapListener($skippedListener);
212+
$skippedListener = $this->unwrapListener($skippedListener, $eventId);
217213

218214
if ($skipped) {
219-
$info = $this->getListenerInfo($skippedListener, $eventName);
215+
$info = $this->getListenerInfo($skippedListener, $eventId, $eventName);
220216
$this->logger->debug(sprintf('Listener "%s" was not called for event "%s".', $info['pretty'], $eventName));
221217
}
222218

@@ -233,7 +229,7 @@ public function logSkippedListeners($eventName, Event $event, $listener)
233229
* Whenever Symfony will require PHP 5.4, this could be changed
234230
* to a proper private method.
235231
*/
236-
public function preListenerCall($eventName, $listener)
232+
public function preListenerCall($eventName, $eventId, $listener)
237233
{
238234
// is it the first called listener?
239235
if (isset($this->firstCalledEvent[$eventName])) {
@@ -242,7 +238,7 @@ public function preListenerCall($eventName, $listener)
242238
unset($this->firstCalledEvent[$eventName]);
243239
}
244240

245-
$info = $this->getListenerInfo($listener, $eventName);
241+
$info = $this->getListenerInfo($listener, $eventId, $eventName);
246242

247243
if (null !== $this->logger) {
248244
$this->logger->debug(sprintf('Notified event "%s" to listener "%s".', $eventName, $info['pretty']));
@@ -261,9 +257,9 @@ public function preListenerCall($eventName, $listener)
261257
*
262258
* @return array Information about the listener
263259
*/
264-
private function getListenerInfo($listener, $eventName)
260+
private function getListenerInfo($listener, $eventId, $eventName)
265261
{
266-
$listener = $this->unwrapListener($listener);
262+
$listener = $this->unwrapListener($listener, $eventId);
267263

268264
$info = array(
269265
'event' => $eventName,
@@ -315,17 +311,17 @@ private function getListenerInfo($listener, $eventName)
315311
return $info;
316312
}
317313

318-
private function preDispatch($eventName, Event $event)
314+
private function preDispatch($eventName, $eventId, Event $event)
319315
{
320316
// wrap all listeners before they are called
321-
$this->wrappedListeners[$this->id] = new \SplObjectStorage();
317+
$this->wrappedListeners[$eventId] = new \SplObjectStorage();
322318

323319
$listeners = $this->dispatcher->getListeners($eventName);
324320

325321
foreach ($listeners as $listener) {
326322
$this->dispatcher->removeListener($eventName, $listener);
327-
$wrapped = $this->wrapListener($eventName, $listener);
328-
$this->wrappedListeners[$this->id][$wrapped] = $listener;
323+
$wrapped = $this->wrapListener($eventName, $eventId, $listener);
324+
$this->wrappedListeners[$eventId][$wrapped] = $listener;
329325
$this->dispatcher->addListener($eventName, $wrapped);
330326
}
331327

@@ -354,7 +350,7 @@ private function preDispatch($eventName, Event $event)
354350
}
355351
}
356352

357-
private function postDispatch($eventName, Event $event)
353+
private function postDispatch($eventName, $eventId, Event $event)
358354
{
359355
switch ($eventName) {
360356
case KernelEvents::CONTROLLER:
@@ -374,20 +370,20 @@ private function postDispatch($eventName, Event $event)
374370
break;
375371
}
376372

377-
foreach ($this->wrappedListeners[$this->id] as $wrapped) {
373+
foreach ($this->wrappedListeners[$eventId] as $wrapped) {
378374
$this->dispatcher->removeListener($eventName, $wrapped);
379-
$this->dispatcher->addListener($eventName, $this->wrappedListeners[$this->id][$wrapped]);
375+
$this->dispatcher->addListener($eventName, $this->wrappedListeners[$eventId][$wrapped]);
380376
}
381377

382-
unset($this->wrappedListeners[$this->id]);
378+
unset($this->wrappedListeners[$eventId]);
383379
}
384380

385-
private function wrapListener($eventName, $listener)
381+
private function wrapListener($eventName, $eventId, $listener)
386382
{
387383
$self = $this;
388384

389-
return function (Event $event) use ($self, $eventName, $listener) {
390-
$e = $self->preListenerCall($eventName, $listener);
385+
return function (Event $event) use ($self, $eventName, $eventId, $listener) {
386+
$e = $self->preListenerCall($eventName, $eventId, $listener);
391387

392388
call_user_func($listener, $event, $eventName, $self);
393389

@@ -396,16 +392,24 @@ private function wrapListener($eventName, $listener)
396392
}
397393

398394
if ($event->isPropagationStopped()) {
399-
$self->logSkippedListeners($eventName, $event, $listener);
395+
$self->logSkippedListeners($eventName, $eventId, $event, $listener);
400396
}
401397
};
402398
}
403399

404-
private function unwrapListener($listener)
400+
private function unwrapListener($listener, $eventId)
405401
{
406402
// get the original listener
407-
if (is_object($listener) && isset($this->wrappedListeners[$this->id][$listener])) {
408-
return $this->wrappedListeners[$this->id][$listener];
403+
if (is_object($listener)) {
404+
if (null === $eventId) {
405+
foreach (array_keys($this->wrappedListeners) as $eventId) {
406+
if (isset($this->wrappedListeners[$eventId][$listener])) {
407+
return $this->wrappedListeners[$eventId][$listener];
408+
}
409+
}
410+
} elseif (isset($this->wrappedListeners[$eventId][$listener])) {
411+
return $this->wrappedListeners[$eventId][$listener];
412+
}
409413
}
410414

411415
return $listener;

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.