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

Commitfa41e63

Browse files
nicolas-grekaswouterj
authored andcommitted
[HttpKernel] Use VarDumper in the Logs&Events panels of the profiler
1 parent973dd87 commitfa41e63

File tree

9 files changed

+140
-230
lines changed

9 files changed

+140
-230
lines changed

‎src/Symfony/Bundle/DebugBundle/Resources/views/Profiler/dump.html.twig‎

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545

4646
{%fordumpin collector.getDumps('html') %}
4747
<divclass="sf-dump sf-reset">
48-
<h3>In
48+
<spanclass="metadata">In
4949
{%ifdump.line %}
5050
{%setlink=dump.file|file_link(dump.line) %}
5151
{%iflink %}
@@ -56,10 +56,8 @@
5656
{%else %}
5757
{{dump.name }}
5858
{%endif %}
59-
<small>line {{dump.line }}</small>
60-
61-
<aclass="text-small sf-toggle"data-toggle-selector="#sf-trace-{{loop.index0 }}"data-toggle-alt-content="Hide code">Show code</a>
62-
</h3>
59+
line <aclass="text-small sf-toggle"data-toggle-selector="#sf-trace-{{loop.index0 }}">{{dump.line }}</a>:
60+
</span>
6361

6462
<divclass="sf-dump-compact hidden"id="sf-trace-{{loop.index0 }}">
6563
<divclass="trace">

‎src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/logger.html.twig‎

Lines changed: 45 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@
33
{%import_selfashelper %}
44

55
{%blocktoolbar %}
6-
{%ifcollector.counterrorsorcollector.countdeprecationsorcollector.countscreams %}
6+
{%ifcollector.counterrorsorcollector.countdeprecationsorcollector.countwarnings %}
77
{%seticon %}
8-
{%setstatus_color=collector.counterrors?'red':collector.countdeprecations?'yellow':'' %}
9-
{%seterror_count=collector.counterrors+collector.countdeprecations %}
8+
{%setstatus_color=collector.counterrors?'red':'yellow' %}
109
{{include('@WebProfiler/Icon/logger.svg') }}
11-
<spanclass="sf-toolbar-value">{{error_count }}</span>
10+
<spanclass="sf-toolbar-value">{{collector.counterrors ?: (collector.countdeprecations+collector.countwarnings) }}</span>
1211
{%endset %}
1312

1413
{%settext %}
@@ -18,13 +17,13 @@
1817
</div>
1918

2019
<divclass="sf-toolbar-info-piece">
21-
<b>Deprecated Calls</b>
22-
<spanclass="sf-toolbar-status sf-toolbar-status-{{collector.countdeprecations?'yellow' }}">{{collector.countdeprecations|default(0) }}</span>
20+
<b>Warnings</b>
21+
<spanclass="sf-toolbar-status sf-toolbar-status-{{collector.countwarnings?'yellow' }}">{{collector.countwarnings|default(0) }}</span>
2322
</div>
2423

2524
<divclass="sf-toolbar-info-piece">
26-
<b>Silenced Errors</b>
27-
<spanclass="sf-toolbar-status">{{collector.countscreams|default(0) }}</span>
25+
<b>Deprecations</b>
26+
<spanclass="sf-toolbar-status sf-toolbar-status-{{collector.countdeprecations?'yellow' }}">{{collector.countdeprecations|default(0) }}</span>
2827
</div>
2928
{%endset %}
3029

@@ -33,12 +32,12 @@
3332
{%endblock %}
3433

3534
{%blockmenu %}
36-
<spanclass="label label-status-{{collector.counterrors?'error':collector.countdeprecations?'warning' }} {{collector.logsisempty?'disabled' }}">
35+
<spanclass="label label-status-{{collector.counterrors?'error':collector.countdeprecationsorcollector.countwarnings?'warning' }} {{collector.logsisempty?'disabled' }}">
3736
<spanclass="icon">{{include('@WebProfiler/Icon/logger.svg') }}</span>
3837
<strong>Logs</strong>
39-
{%ifcollector.counterrorsorcollector.countdeprecations %}
38+
{%ifcollector.counterrorsorcollector.countdeprecationsorcollector.countwarnings%}
4039
<spanclass="count">
41-
<span>{{collector.counterrors ?:collector.countdeprecations }}</span>
40+
<span>{{collector.counterrors ?:(collector.countdeprecations+collector.countwarnings) }}</span>
4241
</span>
4342
{%endif %}
4443
</span>
@@ -55,9 +54,9 @@
5554
{# sort collected logs in groups#}
5655
{%setdeprecation_logs,debug_logs,info_and_error_logs,silenced_logs= [], [], [], [] %}
5756
{%forlogincollector.logs %}
58-
{%iflog.context.errorCountisdefinedandlog.context.typeisdefinedandlog.context.typein ['E_DEPRECATED','E_USER_DEPRECATED'] %}
57+
{%iflog.screamisdefinedandnotlog.scream %}
5958
{%setdeprecation_logs=deprecation_logs|merge([log]) %}
60-
{%elseiflog.context.screamisdefinedandlog.context.scream==true %}
59+
{%elseiflog.screamisdefinedandlog.scream %}
6160
{%setsilenced_logs=silenced_logs|merge([log]) %}
6261
{%elseiflog.priorityName=='DEBUG' %}
6362
{%setdebug_logs=debug_logs|merge([log]) %}
@@ -68,7 +67,7 @@
6867

6968
<divclass="sf-tabs">
7069
<divclass="tab">
71-
<h3class="tab-title">Info.&amp; Errors <spanclass="badge">{{info_and_error_logs|length }}</span></h3>
70+
<h3class="tab-title">Info.&amp; Errors <spanclass="badge status-{{collector.counterrors?'error':collector.countwarnings?'warning' }}">{{collector.counterrors ?:info_and_error_logs|length }}</span></h3>
7271

7372
<divclass="tab-content">
7473
{%ifinfo_and_error_logsisempty %}
@@ -84,7 +83,7 @@
8483
<divclass="tab">
8584
{# 'deprecation_logs|length' is not used because deprecations are
8685
now grouped and the group count doesn't match the message count#}
87-
<h3class="tab-title">Deprecations <spanclass="badge">{{collector.countdeprecations|default(0) }}</span></h3>
86+
<h3class="tab-title">Deprecations <spanclass="badge status-{{collector.countdeprecations?'warning' }}">{{collector.countdeprecations|default(0) }}</span></h3>
8887

8988
<divclass="tab-content">
9089
{%ifdeprecation_logsisempty %}
@@ -112,7 +111,7 @@
112111
</div>
113112

114113
<divclass="tab">
115-
<h3class="tab-title">SilencedErrors<spanclass="badge">{{collector.countscreams|default(0) }}</span></h3>
114+
<h3class="tab-title">SilencedPHP Notices<spanclass="badge">{{collector.countscreams|default(0) }}</span></h3>
116115

117116
<divclass="tab-content">
118117
{%ifsilenced_logsisempty %}
@@ -138,26 +137,32 @@
138137
<tr>
139138
<th>{{show_level?'Level':'Time' }}</th>
140139
{%ifchannel_is_defined %}<th>Channel</th>{%endif %}
141-
<th>Message</th>
140+
<thclass="full-width">Message</th>
142141
</tr>
143142
</thead>
144143

145144
<tbody>
146145
{%forloginlogs %}
147146
{%setcss_class=is_deprecation?''
148147
:log.priorityNamein ['CRITICAL','ERROR','ALERT','EMERGENCY']?'status-error'
149-
:log.priorityNamein ['NOTICE','WARNING']?'status-warning'
148+
:log.priorityName=='WARNING'?'status-warning'
150149
%}
151150
<trclass="{{css_class }}">
152-
<tdclass="font-normal text-small">
151+
<tdclass="font-normal text-small"nowrap>
153152
{%ifshow_level %}
154-
<spanclass="colored text-bold nowrap">{{log.priorityName }}</span>
153+
<spanclass="colored text-bold">{{log.priorityName }}</span>
155154
{%endif %}
156-
<spanclass="text-mutednowrapnewline">{{log.timestamp|date('H:i:s') }}</span>
155+
<spanclass="text-muted newline">{{log.timestamp|date('H:i:s') }}</span>
157156
</td>
158157

159158
{%ifchannel_is_defined %}
160-
<tdclass="font-normal text-small text-bold nowrap">{{log.channel }}</td>
159+
<tdclass="font-normal text-small text-bold"nowrap>
160+
{{log.channel }}
161+
{%iflog.errorCountisdefinedandlog.errorCount>1 %}
162+
<spanclass="text-muted">({{log.errorCount }} times)</span>
163+
{%endif %}
164+
</td>
165+
161166
{%endif %}
162167

163168
<tdclass="font-normal">{{ helper.render_log_message(category,loop.index,log,is_deprecation) }}</td>
@@ -168,69 +173,31 @@
168173
{%endmacro %}
169174

170175
{%macro render_log_message(category,log_index,log,is_deprecation=false) %}
171-
{{log.message }}
172-
173-
{%iflog.context.errorCountisdefinedandlog.context.errorCount>1 %}
174-
<spanclass="text-small text-bold">({{log.context.errorCount }} times)</span>
175-
{%endif %}
176-
177176
{%ifis_deprecation %}
178-
{%settrace=log.context.trace|default([]) %}
179-
{%settrace_id='sf-call-trace-'~category~'-'~log_index %}
177+
{{log.message }}
180178

179+
{%setcontext_id='context-'~category~'-'~log_index %}
181180

182-
{%iftrace %}
183-
<buttonclass="btn-link text-small sf-toggle"data-toggle-selector="#{{trace_id }}"data-toggle-alt-content="Hide stack trace">Show stack trace</button>
184-
{%endif %}
185-
186-
{%forindex,callintraceifindex>1 %}
187-
{%ifindex==2 %}
188-
<ulclass="sf-call-trace hidden"id="{{trace_id }}">
189-
{%endif %}
181+
<spanclass="metadata">
182+
<aclass="btn btn-link text-small sf-toggle"data-toggle-selector="#{{context_id }}"data-toggle-alt-content="Hide trace">Show trace</a>
190183

191-
{%ifcall.classisdefined %}
192-
{%setfrom=call.class|abbr_class~'::'~call.function|abbr_method() %}
193-
{%elseifcall.functionisdefined %}
194-
{%setfrom=call.function|abbr_method %}
195-
{%elseifcall.fileisdefined %}
196-
{%setfrom=call.file %}
197-
{%else %}
198-
{%setfrom='-' %}
199-
{%endif %}
200-
201-
{%setfile_name= (call.fileisdefinedandcall.lineisdefined)?call.file|replace({'\\':'/'})|split('/')|last %}
202-
203-
<li>
204-
{{from|raw }}
205-
{%iffile_name %}
206-
<spanclass="text-small">(called from {{call.file|format_file(call.line,file_name)|raw }})</span>
207-
{%endif %}
208-
</li>
209-
210-
{%ifindex==trace|length-1 %}
211-
</ul>
212-
{%endif %}
213-
{%endfor %}
214-
{%else %}
215-
{%iflog.contextisdefinedandlog.contextis notempty %}
216-
{%setcontext_id='context-'~category~'-'~log_index %}
217-
{%setcontext_dump= profiler_dump(log.context) %}
218-
219-
<divclass="metadata">
220-
<strong>Context</strong>:
184+
<divid="{{context_id }}"class="context sf-toggle-content sf-toggle-hidden">
185+
{{ profiler_dump(log.context.seek('exception').seek('\0Exception\0trace'), maxDepth=2) }}
186+
</div>
187+
</span>
188+
{%elseiflog.contextisdefinedandlog.contextis notempty %}
189+
{{ profiler_dump_log(log.message,log.context) }}
221190

222-
{%ifcontext_dump|length>120 %}
223-
{{context_dump[:120] }} ...
191+
{%setcontext_id='context-'~category~'-'~log_index %}
224192

225-
<aclass="btn-link text-small sf-toggle"data-toggle-selector="#{{context_id }}"data-toggle-alt-content="Hide full context">Show full context</a>
193+
<spanclass="metadata">
194+
<aclass="btn btn-link text-small sf-toggle"data-toggle-selector="#{{context_id }}"data-toggle-alt-content="Hide context">Show context</a>
226195

227-
<divid="{{context_id }}"class="context">
228-
{{dump(log.context) }}
229-
</div>
230-
{%else %}
231-
{{context_dump }}
232-
{%endif %}
196+
<divid="{{context_id }}"class="context sf-toggle-content sf-toggle-hidden">
197+
{{ profiler_dump(log.context, maxDepth=1) }}
233198
</div>
234-
{%endif %}
199+
</span>
200+
{%else %}
201+
{{log.message }}
235202
{%endif %}
236203
{%endmacro %}

‎src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/profiler.css.twig‎

Lines changed: 14 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,9 @@ table tbody ul {
190190
.block {
191191
display: block;
192192
}
193+
.full-width {
194+
width: 100%;
195+
}
193196
.hidden {
194197
display: none;
195198
}
@@ -806,6 +809,8 @@ tr.status-warning td {
806809
.tab-content > *:first-child {
807810
margin-top: 0;
808811
}
812+
.tab-navigation li .badge.status-warning { background: {{colors.warning|raw }}; color: #FFF; }
813+
.tab-navigation li .badge.status-error { background: {{colors.error|raw }}; color: #FFF; }
809814

810815
{# Toggles
811816
=========================================================================#}
@@ -838,32 +843,8 @@ tr.status-warning td {
838843
{# Logger panel
839844
=========================================================================#}
840845
table.logs .metadata {
841-
color: #777;
842846
display: block;
843847
font-size: 12px;
844-
padding-top: 4px;
845-
}
846-
table.logs .metadata strong {
847-
color: #222;
848-
}
849-
table.logs .metadata .context {
850-
background: #F5F5F5;
851-
color: #222;
852-
}
853-
table.logs .metadata .context pre {
854-
margin: 5px 0;
855-
padding: 5px 10px;
856-
white-space: pre-wrap;
857-
}
858-
859-
table.logs .sf-call-stack {
860-
margin: 1em 0 1em 1.5em;
861-
}
862-
table.logs .sf-call-stack li {
863-
margin-bottom: 5px;
864-
}
865-
table.logs .sf-call-stack abbr {
866-
border: none;
867848
}
868849

869850
{# Doctrine panel
@@ -889,13 +870,16 @@ table.logs .sf-call-stack abbr {
889870
#collector-content .sf-dump samp {
890871
{{mixins.monospace_font|raw }}
891872
}
892-
#collector-content .sf-dump h3 {
893-
font-size: 18px;
894-
margin: .5em 0 0;
895-
}
896-
#collector-content .sf-dump h3 a {
873+
#collector-content .sf-dump a {
897874
cursor: pointer;
898875
}
876+
#collector-content .sf-dump pre.sf-dump,
877+
#collector-content .sf-dump .trace {
878+
border: 1px solid #DDD;
879+
background: #FFF;
880+
padding: 10px;
881+
margin: 0.5em 0;
882+
}
899883

900884
#collector-content pre.sf-dump { color: #CC7832; }
901885
#collector-content .sf-dump-str { color: #629755; }
@@ -924,21 +908,12 @@ table.logs .sf-call-stack abbr {
924908
width: 4em;
925909
}
926910

927-
#collector-content .sf-dump .trace {
928-
border: 1px solid #DDD;
929-
background: #FFF;
930-
padding: 10px;
931-
margin: 1em 0;
932-
}
933911
#collector-content .sf-dump .trace {
934912
font-size: 12px;
935913
}
936-
#collector-content .sf-dump .trace code {
937-
font-size: 14px;
938-
}
939914
#collector-content .sf-dump .trace li {
940915
margin-bottom: 0;
941-
padding:5px0;
916+
padding: 0;
942917
}
943918
#collector-content .sf-dump .trace li.selected {
944919
background: rgba(255, 255, 153, 0.5);

‎src/Symfony/Bundle/WebProfilerBundle/Twig/WebProfilerExtension.php‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ public function getFunctions()
7171

7272
returnarray(
7373
new \Twig_SimpleFunction('profiler_dump',$profilerDump,array('is_safe' =>array('html'),'needs_environment' =>true)),
74+
new \Twig_SimpleFunction('profiler_dump_log',array($this,'dumpLog'),array('is_safe' =>array('html'),'needs_environment' =>true)),
7475
);
7576
}
7677

@@ -88,6 +89,23 @@ public function dumpData(\Twig_Environment $env, Data $data, $maxDepth = 0)
8889
returnstr_replace("\n</pre",'</pre',rtrim($dump));
8990
}
9091

92+
publicfunctiondumpLog(\Twig_Environment$env,$message,Data$context)
93+
{
94+
$message =twig_escape_filter($env,$message);
95+
96+
if (false ===strpos($message,'{')) {
97+
return'<span class="dump-inline">'.$message.'</span>';
98+
}
99+
100+
$replacements =array();
101+
foreach ($context->getRawData()[1]as$k =>$v) {
102+
$v ='{'.twig_escape_filter($env,$k).'}';
103+
$replacements['&quot;'.$v.'&quot;'] =$replacements[$v] =$this->dumpData($env,$context->seek($k));
104+
}
105+
106+
return'<span class="dump-inline">'.strtr($message,$replacements).'</span>';
107+
}
108+
91109
/**
92110
* @deprecated since 3.2, to be removed in 4.0. Use the dumpData() method instead.
93111
*/

‎src/Symfony/Bundle/WebProfilerBundle/composer.json‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@
2929
"symfony/dependency-injection":"~2.8|~3.0",
3030
"symfony/stopwatch":"~2.8|~3.0"
3131
},
32+
"conflict": {
33+
"symfony/event-dispatcher":"<3.2"
34+
},
3235
"autoload": {
3336
"psr-4": {"Symfony\\Bundle\\WebProfilerBundle\\":"" },
3437
"exclude-from-classmap": [

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp