Ver Fonte

[WebProfilerBundle][FrameworkBundle]Fixed events panel to handle closures correctly

hidenorigoto há 14 anos atrás
pai
commit
82a8a3fb42

+ 12 - 5
src/Symfony/Bundle/FrameworkBundle/Templating/Helper/CodeHelper.php

@@ -78,12 +78,19 @@ class CodeHelper extends Helper
 
     public function abbrMethod($method)
     {
-        list($class, $method) = explode('::', $method);
-
-        $parts = explode('\\', $class);
-        $short = array_pop($parts);
+        if (false !== strpos($method, '::')) {
+            list($class, $method) = explode('::', $method);
+
+            $parts  = explode('\\', $class);
+            $short  = array_pop($parts);
+            $result = sprintf("<abbr title=\"%s\">%s</abbr>::%s()", $class, $short, $method);
+        } else if ('Closure' === $method) {
+            $result = sprintf("<abbr title=\"%s\">%s</abbr>", $method, $method);
+        } else {
+            $result = sprintf("<abbr title=\"%s\">%s</abbr>()", $method, $method);
+        }
 
-        return sprintf("<abbr title=\"%s\">%s</abbr>::%s", $class, $short, $method);
+        return $result;
     }
 
     /**

+ 2 - 2
src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/events.html.twig

@@ -18,7 +18,7 @@ Events
             <tr>
                 <td><code>{{ elements.event }}</code></td>
                 <td><code>{{ elements.caller|abbr_class }}</code></td>
-                <td><code>{{ elements.listener|abbr_method }}()</code></td>
+                <td><code>{{ elements.listener|abbr_method }}</code></td>
             </tr>
         {% endfor %}
     </table>
@@ -34,7 +34,7 @@ Events
             {% for elements in collector.notcalledlisteners %}
                 <tr>
                     <td><code>{{ elements.event }}</code></td>
-                    <td><code>{{ elements.listener|abbr_method }}()</code></td>
+                    <td><code>{{ elements.listener|abbr_method }}</code></td>
                 </tr>
             {% endfor %}
         </table>