Skip to content

Commit 642ebed

Browse files
committed
review correction from stof
1 parent 9bfa4ae commit 642ebed

File tree

1 file changed

+20
-27
lines changed

1 file changed

+20
-27
lines changed

src/Symfony/Bundle/WebProfilerBundle/EventListener/WebDebugToolbarListener.php

Lines changed: 20 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ public function onKernelResponse(ResponseEvent $event): void
105105
// keep current flashes for one more request if using AutoExpireFlashBag
106106
$session->getFlashBag()->setAll($session->getFlashBag()->peekAll());
107107
}
108+
108109
$response->setContent($this->twig->render('@WebProfiler/Profiler/toolbar_redirect.html.twig', ['location' => $response->headers->get('Location'), 'host' => $request->getSchemeAndHttpHost()]));
109110
$response->setStatusCode(200);
110111
$response->headers->remove('Location');
@@ -130,42 +131,34 @@ protected function injectToolbar(Response $response, Request $request, array $no
130131
{
131132
if ($response instanceof StreamedResponse) {
132133
$callback = $response->getCallback();
133-
if (false !== strripos($response->headers->get('Content-Type'), 'text/html')) {
134-
$toolbarHTMLContent = $this->getToolbarHTML($request, $response->headers->get('X-Debug-Token'), $nonces);
135-
$injectedCallback = static function () use ($toolbarHTMLContent, $callback): void {
136-
ob_start(function (string $buffer, int $phase) use ($toolbarHTMLContent): string {
137-
$pos = strripos($buffer, '</body>');
138-
if (false !== $pos) {
139-
$buffer = substr($buffer, 0, $pos).$toolbarHTMLContent.substr($buffer, $pos);
140-
}
141-
142-
return $buffer;
143-
}, 8); // length of '</body>'
144-
145-
($callback)();
146-
ob_end_flush();
147-
};
148-
$response->setCallback($injectedCallback);
149-
}
134+
$toolbarHTMLContent = $this->getToolbarHTML($request, $response->headers->get('X-Debug-Token'), $nonces);
135+
$injectedCallback = static function () use ($toolbarHTMLContent, $callback): void {
136+
ob_start(function (string $buffer, int $phase) use ($toolbarHTMLContent): string {
137+
$pos = strripos($buffer, '</body>');
138+
if (false !== $pos) {
139+
$buffer = substr($buffer, 0, $pos).$toolbarHTMLContent.substr($buffer, $pos);
140+
}
141+
142+
return $buffer;
143+
}, 8); // length of '</body>'
144+
145+
($callback)();
146+
ob_end_flush();
147+
};
148+
$response->setCallback($injectedCallback);
150149
} else {
151150
$content = $response->getContent();
152151
$pos = strripos($content, '</body>');
153152

154153
if (false !== $pos) {
155-
$response->setContent(
156-
$this->renderToolbarInContent($content, $pos, $response->headers->get('X-Debug-Token'), $request, $nonces)
157-
);
154+
$toolbar = "\n".str_replace("\n", '', $this->getToolbarHTML($request, $response->headers->get('X-Debug-Token'), $nonces))."\n";
155+
156+
$content = substr($content, 0, $pos).$toolbar.substr($content, $pos);
157+
$response->setContent($content);
158158
}
159159
}
160160
}
161161

162-
protected function renderToolbarInContent(string $content, int $pos, ?string $debugToken, Request $request, array $nonces): string
163-
{
164-
$toolbar = "\n".str_replace("\n", '', $this->getToolbarHTML($request, $debugToken, $nonces))."\n";
165-
166-
return substr($content, 0, $pos).$toolbar.substr($content, $pos);
167-
}
168-
169162
private function getToolbarHTML(Request $request, ?string $debugToken, array $nonces): string
170163
{
171164
return $this->twig->render(

0 commit comments

Comments
 (0)