var/cache/dev/twig/b7/b769feb760ff4ae3684f02913b149572.php line 53
<?php
use Twig\Environment;
use Twig\Error\LoaderError;
use Twig\Error\RuntimeError;
use Twig\Extension\SandboxExtension;
use Twig\Markup;
use Twig\Sandbox\SecurityError;
use Twig\Sandbox\SecurityNotAllowedTagError;
use Twig\Sandbox\SecurityNotAllowedFilterError;
use Twig\Sandbox\SecurityNotAllowedFunctionError;
use Twig\Source;
use Twig\Template;
/* @Doctrine/Collector/db.html.twig */
class __TwigTemplate_b620b9029e8f9ab11d428d106267589f extends Template
{
private $source;
private $macros = [];
public function __construct(Environment $env)
{
parent::__construct($env);
$this->source = $this->getSourceContext();
$this->blocks = [
'toolbar' => [$this, 'block_toolbar'],
'menu' => [$this, 'block_menu'],
'panel' => [$this, 'block_panel'],
'queries' => [$this, 'block_queries'],
];
}
protected function doGetParent(array $context)
{
// line 1
return $this->loadTemplate(((twig_get_attribute($this->env, $this->source, (isset($context["request"]) || array_key_exists("request", $context) ? $context["request"] : (function () { throw new RuntimeError('Variable "request" does not exist.', 1, $this->source); })()), "isXmlHttpRequest", [], "any", false, false, false, 1)) ? ("@WebProfiler/Profiler/ajax_layout.html.twig") : ("@WebProfiler/Profiler/layout.html.twig")), "@Doctrine/Collector/db.html.twig", 1);
}
protected function doDisplay(array $context, array $blocks = [])
{
$macros = $this->macros;
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "@Doctrine/Collector/db.html.twig"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "@Doctrine/Collector/db.html.twig"));
// line 3
$macros["helper"] = $this->macros["helper"] = $this;
// line 1
$this->getParent($context)->display($context, array_merge($this->blocks, $blocks));
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
}
// line 5
public function block_toolbar($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "toolbar"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "toolbar"));
// line 6
echo " ";
if (((twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 6, $this->source); })()), "querycount", [], "any", false, false, false, 6) > 0) || (twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 6, $this->source); })()), "invalidEntityCount", [], "any", false, false, false, 6) > 0))) {
// line 7
echo "
";
// line 8
ob_start();
// line 9
echo " ";
$context["status"] = (((twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 9, $this->source); })()), "invalidEntityCount", [], "any", false, false, false, 9) > 0)) ? ("red") : ((((twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 9, $this->source); })()), "querycount", [], "any", false, false, false, 9) > 50)) ? ("yellow") : (""))));
// line 10
echo "
";
// line 11
echo twig_include($this->env, $context, "@Doctrine/Collector/icon.svg");
echo "
";
// line 13
if (((twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 13, $this->source); })()), "querycount", [], "any", false, false, false, 13) == 0) && (twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 13, $this->source); })()), "invalidEntityCount", [], "any", false, false, false, 13) > 0))) {
// line 14
echo " <span class=\"sf-toolbar-value\">";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 14, $this->source); })()), "invalidEntityCount", [], "any", false, false, false, 14), "html", null, true);
echo "</span>
<span class=\"sf-toolbar-label\">errors</span>
";
} else {
// line 17
echo " <span class=\"sf-toolbar-value\">";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 17, $this->source); })()), "querycount", [], "any", false, false, false, 17), "html", null, true);
echo "</span>
<span class=\"sf-toolbar-info-piece-additional-detail\">
<span class=\"sf-toolbar-label\">in</span>
<span class=\"sf-toolbar-value\">";
// line 20
echo twig_escape_filter($this->env, twig_sprintf("%0.2f", (twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 20, $this->source); })()), "time", [], "any", false, false, false, 20) * 1000)), "html", null, true);
echo "</span>
<span class=\"sf-toolbar-label\">ms</span>
</span>
";
}
// line 24
echo " ";
$context["icon"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
// line 25
echo "
";
// line 26
ob_start();
// line 27
echo " <div class=\"sf-toolbar-info-piece\">
<b>Database Queries</b>
<span class=\"sf-toolbar-status ";
// line 29
echo (((twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 29, $this->source); })()), "querycount", [], "any", false, false, false, 29) > 50)) ? ("sf-toolbar-status-yellow") : (""));
echo "\">";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 29, $this->source); })()), "querycount", [], "any", false, false, false, 29), "html", null, true);
echo "</span>
</div>
<div class=\"sf-toolbar-info-piece\">
<b>Different statements</b>
<span class=\"sf-toolbar-status\">";
// line 33
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 33, $this->source); })()), "groupedQueryCount", [], "any", false, false, false, 33), "html", null, true);
echo "</span>
</div>
<div class=\"sf-toolbar-info-piece\">
<b>Query time</b>
<span>";
// line 37
echo twig_escape_filter($this->env, twig_sprintf("%0.2f", (twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 37, $this->source); })()), "time", [], "any", false, false, false, 37) * 1000)), "html", null, true);
echo " ms</span>
</div>
<div class=\"sf-toolbar-info-piece\">
<b>Invalid entities</b>
<span class=\"sf-toolbar-status ";
// line 41
echo (((twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 41, $this->source); })()), "invalidEntityCount", [], "any", false, false, false, 41) > 0)) ? ("sf-toolbar-status-red") : (""));
echo "\">";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 41, $this->source); })()), "invalidEntityCount", [], "any", false, false, false, 41), "html", null, true);
echo "</span>
</div>
";
// line 43
if (twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 43, $this->source); })()), "cacheEnabled", [], "any", false, false, false, 43)) {
// line 44
echo " <div class=\"sf-toolbar-info-piece\">
<b>Cache hits</b>
<span class=\"sf-toolbar-status sf-toolbar-status-green\">";
// line 46
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 46, $this->source); })()), "cacheHitsCount", [], "any", false, false, false, 46), "html", null, true);
echo "</span>
</div>
<div class=\"sf-toolbar-info-piece\">
<b>Cache misses</b>
<span class=\"sf-toolbar-status ";
// line 50
echo (((twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 50, $this->source); })()), "cacheMissesCount", [], "any", false, false, false, 50) > 0)) ? ("sf-toolbar-status-yellow") : (""));
echo "\">";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 50, $this->source); })()), "cacheMissesCount", [], "any", false, false, false, 50), "html", null, true);
echo "</span>
</div>
<div class=\"sf-toolbar-info-piece\">
<b>Cache puts</b>
<span class=\"sf-toolbar-status ";
// line 54
echo (((twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 54, $this->source); })()), "cachePutsCount", [], "any", false, false, false, 54) > 0)) ? ("sf-toolbar-status-yellow") : (""));
echo "\">";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 54, $this->source); })()), "cachePutsCount", [], "any", false, false, false, 54), "html", null, true);
echo "</span>
</div>
";
} else {
// line 57
echo " <div class=\"sf-toolbar-info-piece\">
<b>Second Level Cache</b>
<span class=\"sf-toolbar-status\">disabled</span>
</div>
";
}
// line 62
echo " ";
$context["text"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
// line 63
echo "
";
// line 64
echo twig_include($this->env, $context, "@WebProfiler/Profiler/toolbar_item.html.twig", ["link" => (isset($context["profiler_url"]) || array_key_exists("profiler_url", $context) ? $context["profiler_url"] : (function () { throw new RuntimeError('Variable "profiler_url" does not exist.', 64, $this->source); })()), "status" => ((array_key_exists("status", $context)) ? (_twig_default_filter((isset($context["status"]) || array_key_exists("status", $context) ? $context["status"] : (function () { throw new RuntimeError('Variable "status" does not exist.', 64, $this->source); })()), "")) : (""))]);
echo "
";
}
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
}
// line 69
public function block_menu($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "menu"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "menu"));
// line 70
echo " <span class=\"label ";
echo (((twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 70, $this->source); })()), "invalidEntityCount", [], "any", false, false, false, 70) > 0)) ? ("label-status-error") : (""));
echo " ";
echo (((twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 70, $this->source); })()), "querycount", [], "any", false, false, false, 70) == 0)) ? ("disabled") : (""));
echo "\">
<span class=\"icon\">";
// line 71
echo twig_include($this->env, $context, "@Doctrine/Collector/icon.svg");
echo "</span>
<strong>Doctrine</strong>
";
// line 73
if (twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 73, $this->source); })()), "invalidEntityCount", [], "any", false, false, false, 73)) {
// line 74
echo " <span class=\"count\">
<span>";
// line 75
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 75, $this->source); })()), "invalidEntityCount", [], "any", false, false, false, 75), "html", null, true);
echo "</span>
</span>
";
}
// line 78
echo " </span>
";
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
}
// line 81
public function block_panel($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "panel"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "panel"));
// line 82
echo " ";
if (("explain" == (isset($context["page"]) || array_key_exists("page", $context) ? $context["page"] : (function () { throw new RuntimeError('Variable "page" does not exist.', 82, $this->source); })()))) {
// line 83
echo " ";
echo $this->env->getRuntime('Symfony\Bridge\Twig\Extension\HttpKernelRuntime')->renderFragment(Symfony\Bridge\Twig\Extension\HttpKernelExtension::controller("Doctrine\\Bundle\\DoctrineBundle\\Controller\\ProfilerController::explainAction", ["token" => // line 84
(isset($context["token"]) || array_key_exists("token", $context) ? $context["token"] : (function () { throw new RuntimeError('Variable "token" does not exist.', 84, $this->source); })()), "panel" => "db", "connectionName" => twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, // line 86
(isset($context["request"]) || array_key_exists("request", $context) ? $context["request"] : (function () { throw new RuntimeError('Variable "request" does not exist.', 86, $this->source); })()), "query", [], "any", false, false, false, 86), "get", [0 => "connection"], "method", false, false, false, 86), "query" => twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, // line 87
(isset($context["request"]) || array_key_exists("request", $context) ? $context["request"] : (function () { throw new RuntimeError('Variable "request" does not exist.', 87, $this->source); })()), "query", [], "any", false, false, false, 87), "get", [0 => "query"], "method", false, false, false, 87)]));
// line 88
echo "
";
} else {
// line 90
echo " ";
$this->displayBlock("queries", $context, $blocks);
echo "
";
}
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
}
// line 94
public function block_queries($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "queries"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "queries"));
// line 95
echo " <style>
.time-container { position: relative; }
.time-container .nowrap { position: relative; z-index: 1; text-shadow: 0 0 2px #fff; }
.time-bar { display: block; position: absolute; top: 0; left: 0; bottom: 0; background: #e0e0e0; }
.sql-runnable.sf-toggle-content.sf-toggle-visible { display: flex; flex-direction: column; }
.sql-runnable button { align-self: end; }
</style>
<h2>Query Metrics</h2>
<div class=\"metrics\">
<div class=\"metric\">
<span class=\"value\">";
// line 107
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 107, $this->source); })()), "querycount", [], "any", false, false, false, 107), "html", null, true);
echo "</span>
<span class=\"label\">Database Queries</span>
</div>
<div class=\"metric\">
<span class=\"value\">";
// line 112
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 112, $this->source); })()), "groupedQueryCount", [], "any", false, false, false, 112), "html", null, true);
echo "</span>
<span class=\"label\">Different statements</span>
</div>
<div class=\"metric\">
<span class=\"value\">";
// line 117
echo twig_escape_filter($this->env, twig_sprintf("%0.2f", (twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 117, $this->source); })()), "time", [], "any", false, false, false, 117) * 1000)), "html", null, true);
echo " ms</span>
<span class=\"label\">Query time</span>
</div>
<div class=\"metric\">
<span class=\"value\">";
// line 122
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 122, $this->source); })()), "invalidEntityCount", [], "any", false, false, false, 122), "html", null, true);
echo "</span>
<span class=\"label\">Invalid entities</span>
</div>
";
// line 126
if (twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 126, $this->source); })()), "cacheEnabled", [], "any", false, false, false, 126)) {
// line 127
echo " <div class=\"metric\">
<span class=\"value\">";
// line 128
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 128, $this->source); })()), "cacheHitsCount", [], "any", false, false, false, 128), "html", null, true);
echo "</span>
<span class=\"label\">Cache hits</span>
</div>
<div class=\"metric\">
<span class=\"value\">";
// line 132
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 132, $this->source); })()), "cacheMissesCount", [], "any", false, false, false, 132), "html", null, true);
echo "</span>
<span class=\"label\">Cache misses</span>
</div>
<div class=\"metric\">
<span class=\"value\">";
// line 136
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 136, $this->source); })()), "cachePutsCount", [], "any", false, false, false, 136), "html", null, true);
echo "</span>
<span class=\"label\">Cache puts</span>
</div>
";
}
// line 140
echo " </div>
";
// line 142
$context["group_queries"] = twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["request"]) || array_key_exists("request", $context) ? $context["request"] : (function () { throw new RuntimeError('Variable "request" does not exist.', 142, $this->source); })()), "query", [], "any", false, false, false, 142), "getBoolean", [0 => "group"], "method", false, false, false, 142);
// line 143
echo " ";
if ((isset($context["group_queries"]) || array_key_exists("group_queries", $context) ? $context["group_queries"] : (function () { throw new RuntimeError('Variable "group_queries" does not exist.', 143, $this->source); })())) {
// line 144
echo " <h2>Grouped Statements</h2>
<p><a href=\"";
// line 145
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("_profiler", ["panel" => "db", "token" => (isset($context["token"]) || array_key_exists("token", $context) ? $context["token"] : (function () { throw new RuntimeError('Variable "token" does not exist.', 145, $this->source); })())]), "html", null, true);
echo "\">Show all queries</a></p>
";
} else {
// line 147
echo " <h2>Queries</h2>
<p><a href=\"";
// line 148
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("_profiler", ["panel" => "db", "token" => (isset($context["token"]) || array_key_exists("token", $context) ? $context["token"] : (function () { throw new RuntimeError('Variable "token" does not exist.', 148, $this->source); })()), "group" => true]), "html", null, true);
echo "\">Group similar statements</a></p>
";
}
// line 150
echo "
";
// line 151
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 151, $this->source); })()), "queries", [], "any", false, false, false, 151));
$context['loop'] = [
'parent' => $context['_parent'],
'index0' => 0,
'index' => 1,
'first' => true,
];
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
$length = count($context['_seq']);
$context['loop']['revindex0'] = $length - 1;
$context['loop']['revindex'] = $length;
$context['loop']['length'] = $length;
$context['loop']['last'] = 1 === $length;
}
foreach ($context['_seq'] as $context["connection"] => $context["queries"]) {
// line 152
echo " ";
if ((twig_length_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 152, $this->source); })()), "connections", [], "any", false, false, false, 152)) > 1)) {
// line 153
echo " <h3>";
echo twig_escape_filter($this->env, $context["connection"], "html", null, true);
echo " <small>connection</small></h3>
";
}
// line 155
echo "
";
// line 156
if (twig_test_empty($context["queries"])) {
// line 157
echo " <div class=\"empty\">
<p>No database queries were performed.</p>
</div>
";
} else {
// line 161
echo " ";
if ((isset($context["group_queries"]) || array_key_exists("group_queries", $context) ? $context["group_queries"] : (function () { throw new RuntimeError('Variable "group_queries" does not exist.', 161, $this->source); })())) {
// line 162
echo " ";
$context["queries"] = twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 162, $this->source); })()), "groupedQueries", [], "any", false, false, false, 162), $context["connection"], [], "array", false, false, false, 162);
// line 163
echo " ";
}
// line 164
echo " <table class=\"alt queries-table\">
<thead>
<tr>
";
// line 167
if ((isset($context["group_queries"]) || array_key_exists("group_queries", $context) ? $context["group_queries"] : (function () { throw new RuntimeError('Variable "group_queries" does not exist.', 167, $this->source); })())) {
// line 168
echo " <th class=\"nowrap\" onclick=\"javascript:sortTable(this, 0, 'queries-";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 168), "html", null, true);
echo "')\" data-sort-direction=\"1\" style=\"cursor: pointer;\">Time<span class=\"text-muted\">▼</span></th>
<th class=\"nowrap\" onclick=\"javascript:sortTable(this, 1, 'queries-";
// line 169
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 169), "html", null, true);
echo "')\" style=\"cursor: pointer;\">Count<span></span></th>
";
} else {
// line 171
echo " <th class=\"nowrap\" onclick=\"javascript:sortTable(this, 0, 'queries-";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 171), "html", null, true);
echo "')\" data-sort-direction=\"-1\" style=\"cursor: pointer;\">#<span class=\"text-muted\">▲</span></th>
<th class=\"nowrap\" onclick=\"javascript:sortTable(this, 1, 'queries-";
// line 172
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 172), "html", null, true);
echo "')\" style=\"cursor: pointer;\">Time<span></span></th>
";
}
// line 174
echo " <th style=\"width: 100%;\">Info</th>
</tr>
</thead>
<tbody id=\"queries-";
// line 177
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 177), "html", null, true);
echo "\">
";
// line 178
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable($context["queries"]);
$context['loop'] = [
'parent' => $context['_parent'],
'index0' => 0,
'index' => 1,
'first' => true,
];
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
$length = count($context['_seq']);
$context['loop']['revindex0'] = $length - 1;
$context['loop']['revindex'] = $length;
$context['loop']['length'] = $length;
$context['loop']['last'] = 1 === $length;
}
foreach ($context['_seq'] as $context["i"] => $context["query"]) {
// line 179
echo " ";
$context["i"] = (((isset($context["group_queries"]) || array_key_exists("group_queries", $context) ? $context["group_queries"] : (function () { throw new RuntimeError('Variable "group_queries" does not exist.', 179, $this->source); })())) ? (twig_get_attribute($this->env, $this->source, $context["query"], "index", [], "any", false, false, false, 179)) : ($context["i"]));
// line 180
echo " <tr id=\"queryNo-";
echo twig_escape_filter($this->env, $context["i"], "html", null, true);
echo "-";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["loop"], "parent", [], "any", false, false, false, 180), "loop", [], "any", false, false, false, 180), "index", [], "any", false, false, false, 180), "html", null, true);
echo "\">
";
// line 181
if ((isset($context["group_queries"]) || array_key_exists("group_queries", $context) ? $context["group_queries"] : (function () { throw new RuntimeError('Variable "group_queries" does not exist.', 181, $this->source); })())) {
// line 182
echo " <td class=\"time-container\">
<span class=\"time-bar\" style=\"width:";
// line 183
echo twig_escape_filter($this->env, twig_sprintf("%0.2f", twig_get_attribute($this->env, $this->source, $context["query"], "executionPercent", [], "any", false, false, false, 183)), "html", null, true);
echo "%\"></span>
<span class=\"nowrap\">";
// line 184
echo twig_escape_filter($this->env, twig_sprintf("%0.2f", (twig_get_attribute($this->env, $this->source, $context["query"], "executionMS", [], "any", false, false, false, 184) * 1000)), "html", null, true);
echo " ms<br />(";
echo twig_escape_filter($this->env, twig_sprintf("%0.2f", twig_get_attribute($this->env, $this->source, $context["query"], "executionPercent", [], "any", false, false, false, 184)), "html", null, true);
echo "%)</span>
</td>
<td class=\"nowrap\">";
// line 186
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["query"], "count", [], "any", false, false, false, 186), "html", null, true);
echo "</td>
";
} else {
// line 188
echo " <td class=\"nowrap\">";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 188), "html", null, true);
echo "</td>
<td class=\"nowrap\">";
// line 189
echo twig_escape_filter($this->env, twig_sprintf("%0.2f", (twig_get_attribute($this->env, $this->source, $context["query"], "executionMS", [], "any", false, false, false, 189) * 1000)), "html", null, true);
echo " ms</td>
";
}
// line 191
echo " <td>
";
// line 192
echo $this->extensions['Doctrine\Bundle\DoctrineBundle\Twig\DoctrineExtension']->prettifySql(twig_get_attribute($this->env, $this->source, $context["query"], "sql", [], "any", false, false, false, 192));
echo "
<div>
<strong class=\"font-normal text-small\">Parameters</strong>: ";
// line 195
echo $this->extensions['Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension']->dumpData($this->env, twig_get_attribute($this->env, $this->source, $context["query"], "params", [], "any", false, false, false, 195), 2);
echo "
</div>
<div class=\"text-small font-normal\">
<a href=\"#\" class=\"sf-toggle link-inverse\" data-toggle-selector=\"#formatted-query-";
// line 199
echo twig_escape_filter($this->env, $context["i"], "html", null, true);
echo "-";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["loop"], "parent", [], "any", false, false, false, 199), "loop", [], "any", false, false, false, 199), "index", [], "any", false, false, false, 199), "html", null, true);
echo "\" data-toggle-alt-content=\"Hide formatted query\">View formatted query</a>
";
// line 201
if (twig_get_attribute($this->env, $this->source, $context["query"], "runnable", [], "any", false, false, false, 201)) {
// line 202
echo "
<a href=\"#\" class=\"sf-toggle link-inverse\" data-toggle-selector=\"#original-query-";
// line 203
echo twig_escape_filter($this->env, $context["i"], "html", null, true);
echo "-";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["loop"], "parent", [], "any", false, false, false, 203), "loop", [], "any", false, false, false, 203), "index", [], "any", false, false, false, 203), "html", null, true);
echo "\" data-toggle-alt-content=\"Hide runnable query\">View runnable query</a>
";
}
// line 205
echo "
";
// line 206
if (twig_get_attribute($this->env, $this->source, $context["query"], "explainable", [], "any", false, false, false, 206)) {
// line 207
echo "
<a class=\"link-inverse\" href=\"";
// line 208
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("_profiler", ["panel" => "db", "token" => (isset($context["token"]) || array_key_exists("token", $context) ? $context["token"] : (function () { throw new RuntimeError('Variable "token" does not exist.', 208, $this->source); })()), "page" => "explain", "connection" => $context["connection"], "query" => $context["i"]]), "html", null, true);
echo "\" onclick=\"return explain(this);\" data-target-id=\"explain-";
echo twig_escape_filter($this->env, $context["i"], "html", null, true);
echo "-";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["loop"], "parent", [], "any", false, false, false, 208), "loop", [], "any", false, false, false, 208), "index", [], "any", false, false, false, 208), "html", null, true);
echo "\">Explain query</a>
";
}
// line 210
echo "
";
// line 211
if (twig_get_attribute($this->env, $this->source, $context["query"], "backtrace", [], "any", true, true, false, 211)) {
// line 212
echo "
<a href=\"#\" class=\"sf-toggle link-inverse\" data-toggle-selector=\"#backtrace-";
// line 213
echo twig_escape_filter($this->env, $context["i"], "html", null, true);
echo "-";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["loop"], "parent", [], "any", false, false, false, 213), "loop", [], "any", false, false, false, 213), "index", [], "any", false, false, false, 213), "html", null, true);
echo "\" data-toggle-alt-content=\"Hide query backtrace\">View query backtrace</a>
";
}
// line 215
echo " </div>
<div id=\"formatted-query-";
// line 217
echo twig_escape_filter($this->env, $context["i"], "html", null, true);
echo "-";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["loop"], "parent", [], "any", false, false, false, 217), "loop", [], "any", false, false, false, 217), "index", [], "any", false, false, false, 217), "html", null, true);
echo "\" class=\"sql-runnable hidden\">
";
// line 218
echo $this->extensions['Doctrine\Bundle\DoctrineBundle\Twig\DoctrineExtension']->formatSql(twig_get_attribute($this->env, $this->source, $context["query"], "sql", [], "any", false, false, false, 218), true);
echo "
<button class=\"btn btn-sm hidden\" data-clipboard-text=\"";
// line 219
echo twig_escape_filter($this->env, $this->extensions['Doctrine\Bundle\DoctrineBundle\Twig\DoctrineExtension']->formatSql(twig_get_attribute($this->env, $this->source, $context["query"], "sql", [], "any", false, false, false, 219), false), "html_attr");
echo "\">Copy</button>
</div>
";
// line 222
if (twig_get_attribute($this->env, $this->source, $context["query"], "runnable", [], "any", false, false, false, 222)) {
// line 223
echo " <div id=\"original-query-";
echo twig_escape_filter($this->env, $context["i"], "html", null, true);
echo "-";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["loop"], "parent", [], "any", false, false, false, 223), "loop", [], "any", false, false, false, 223), "index", [], "any", false, false, false, 223), "html", null, true);
echo "\" class=\"sql-runnable hidden\">
";
// line 224
$context["runnable_sql"] = $this->extensions['Doctrine\Bundle\DoctrineBundle\Twig\DoctrineExtension']->replaceQueryParameters((twig_get_attribute($this->env, $this->source, $context["query"], "sql", [], "any", false, false, false, 224) . ";"), twig_get_attribute($this->env, $this->source, $context["query"], "params", [], "any", false, false, false, 224));
// line 225
echo " ";
echo $this->extensions['Doctrine\Bundle\DoctrineBundle\Twig\DoctrineExtension']->prettifySql((isset($context["runnable_sql"]) || array_key_exists("runnable_sql", $context) ? $context["runnable_sql"] : (function () { throw new RuntimeError('Variable "runnable_sql" does not exist.', 225, $this->source); })()));
echo "
<button class=\"btn btn-sm hidden\" data-clipboard-text=\"";
// line 226
echo twig_escape_filter($this->env, (isset($context["runnable_sql"]) || array_key_exists("runnable_sql", $context) ? $context["runnable_sql"] : (function () { throw new RuntimeError('Variable "runnable_sql" does not exist.', 226, $this->source); })()), "html_attr");
echo "\">Copy</button>
</div>
";
}
// line 229
echo "
";
// line 230
if (twig_get_attribute($this->env, $this->source, $context["query"], "explainable", [], "any", false, false, false, 230)) {
// line 231
echo " <div id=\"explain-";
echo twig_escape_filter($this->env, $context["i"], "html", null, true);
echo "-";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["loop"], "parent", [], "any", false, false, false, 231), "loop", [], "any", false, false, false, 231), "index", [], "any", false, false, false, 231), "html", null, true);
echo "\" class=\"sql-explain\"></div>
";
}
// line 233
echo "
";
// line 234
if (twig_get_attribute($this->env, $this->source, $context["query"], "backtrace", [], "any", true, true, false, 234)) {
// line 235
echo " <div id=\"backtrace-";
echo twig_escape_filter($this->env, $context["i"], "html", null, true);
echo "-";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["loop"], "parent", [], "any", false, false, false, 235), "loop", [], "any", false, false, false, 235), "index", [], "any", false, false, false, 235), "html", null, true);
echo "\" class=\"hidden\">
<table>
<thead>
<tr>
<th scope=\"col\">#</th>
<th scope=\"col\">File/Call</th>
</tr>
</thead>
<tbody>
";
// line 244
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, $context["query"], "backtrace", [], "any", false, false, false, 244));
$context['loop'] = [
'parent' => $context['_parent'],
'index0' => 0,
'index' => 1,
'first' => true,
];
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
$length = count($context['_seq']);
$context['loop']['revindex0'] = $length - 1;
$context['loop']['revindex'] = $length;
$context['loop']['length'] = $length;
$context['loop']['last'] = 1 === $length;
}
foreach ($context['_seq'] as $context["_key"] => $context["trace"]) {
// line 245
echo " <tr>
<td>";
// line 246
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 246), "html", null, true);
echo "</td>
<td>
<span class=\"text-small\">
";
// line 249
$context["line_number"] = ((twig_get_attribute($this->env, $this->source, $context["trace"], "line", [], "any", true, true, false, 249)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, $context["trace"], "line", [], "any", false, false, false, 249), 1)) : (1));
// line 250
echo " ";
if (twig_get_attribute($this->env, $this->source, $context["trace"], "file", [], "any", true, true, false, 250)) {
// line 251
echo " <a href=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\CodeExtension']->getFileLink(twig_get_attribute($this->env, $this->source, $context["trace"], "file", [], "any", false, false, false, 251), (isset($context["line_number"]) || array_key_exists("line_number", $context) ? $context["line_number"] : (function () { throw new RuntimeError('Variable "line_number" does not exist.', 251, $this->source); })())), "html", null, true);
echo "\">
";
}
// line 253
echo twig_escape_filter($this->env, (((twig_get_attribute($this->env, $this->source, $context["trace"], "class", [], "any", true, true, false, 253)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, $context["trace"], "class", [], "any", false, false, false, 253))) : ("")) . ((twig_get_attribute($this->env, $this->source, $context["trace"], "class", [], "any", true, true, false, 253)) ? (((twig_get_attribute($this->env, $this->source, $context["trace"], "type", [], "any", true, true, false, 253)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, $context["trace"], "type", [], "any", false, false, false, 253), "::")) : ("::"))) : (""))), "html", null, true);
// line 254
echo "<span class=\"status-warning\">";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["trace"], "function", [], "any", false, false, false, 254), "html", null, true);
echo "</span>
";
// line 255
if (twig_get_attribute($this->env, $this->source, $context["trace"], "file", [], "any", true, true, false, 255)) {
// line 256
echo " </a>
";
}
// line 258
echo " (line ";
echo twig_escape_filter($this->env, (isset($context["line_number"]) || array_key_exists("line_number", $context) ? $context["line_number"] : (function () { throw new RuntimeError('Variable "line_number" does not exist.', 258, $this->source); })()), "html", null, true);
echo ")
</span>
</td>
</tr>
";
++$context['loop']['index0'];
++$context['loop']['index'];
$context['loop']['first'] = false;
if (isset($context['loop']['length'])) {
--$context['loop']['revindex0'];
--$context['loop']['revindex'];
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
}
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['trace'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 263
echo " </tbody>
</table>
</div>
";
}
// line 267
echo " </td>
</tr>
";
++$context['loop']['index0'];
++$context['loop']['index'];
$context['loop']['first'] = false;
if (isset($context['loop']['length'])) {
--$context['loop']['revindex0'];
--$context['loop']['revindex'];
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
}
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['i'], $context['query'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 270
echo " </tbody>
</table>
";
}
// line 273
echo " ";
++$context['loop']['index0'];
++$context['loop']['index'];
$context['loop']['first'] = false;
if (isset($context['loop']['length'])) {
--$context['loop']['revindex0'];
--$context['loop']['revindex'];
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
}
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['connection'], $context['queries'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 274
echo "
<h2>Database Connections</h2>
";
// line 277
if ( !twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 277, $this->source); })()), "connections", [], "any", false, false, false, 277)) {
// line 278
echo " <div class=\"empty\">
<p>There are no configured database connections.</p>
</div>
";
} else {
// line 282
echo " ";
echo twig_call_macro($macros["helper"], "macro_render_simple_table", ["Name", "Service", twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 282, $this->source); })()), "connections", [], "any", false, false, false, 282)], 282, $context, $this->getSourceContext());
echo "
";
}
// line 284
echo "
<h2>Entity Managers</h2>
";
// line 287
if ( !twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 287, $this->source); })()), "managers", [], "any", false, false, false, 287)) {
// line 288
echo " <div class=\"empty\">
<p>There are no configured entity managers.</p>
</div>
";
} else {
// line 292
echo " ";
echo twig_call_macro($macros["helper"], "macro_render_simple_table", ["Name", "Service", twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 292, $this->source); })()), "managers", [], "any", false, false, false, 292)], 292, $context, $this->getSourceContext());
echo "
";
}
// line 294
echo "
<h2>Second Level Cache</h2>
";
// line 297
if ( !twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 297, $this->source); })()), "cacheEnabled", [], "any", false, false, false, 297)) {
// line 298
echo " <div class=\"empty\">
<p>Second Level Cache is not enabled.</p>
</div>
";
} else {
// line 302
echo " ";
if ( !twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 302, $this->source); })()), "cacheCounts", [], "any", false, false, false, 302)) {
// line 303
echo " <div class=\"empty\">
<p>Second level cache information is not available.</p>
</div>
";
} else {
// line 307
echo " <div class=\"metrics\">
<div class=\"metric\">
<span class=\"value\">";
// line 309
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 309, $this->source); })()), "cacheCounts", [], "any", false, false, false, 309), "hits", [], "any", false, false, false, 309), "html", null, true);
echo "</span>
<span class=\"label\">Hits</span>
</div>
<div class=\"metric\">
<span class=\"value\">";
// line 314
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 314, $this->source); })()), "cacheCounts", [], "any", false, false, false, 314), "misses", [], "any", false, false, false, 314), "html", null, true);
echo "</span>
<span class=\"label\">Misses</span>
</div>
<div class=\"metric\">
<span class=\"value\">";
// line 319
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 319, $this->source); })()), "cacheCounts", [], "any", false, false, false, 319), "puts", [], "any", false, false, false, 319), "html", null, true);
echo "</span>
<span class=\"label\">Puts</span>
</div>
</div>
";
// line 324
if (twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 324, $this->source); })()), "cacheRegions", [], "any", false, false, false, 324), "hits", [], "any", false, false, false, 324)) {
// line 325
echo " <h3>Number of cache hits</h3>
";
// line 326
echo twig_call_macro($macros["helper"], "macro_render_simple_table", ["Region", "Hits", twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 326, $this->source); })()), "cacheRegions", [], "any", false, false, false, 326), "hits", [], "any", false, false, false, 326)], 326, $context, $this->getSourceContext());
echo "
";
}
// line 328
echo "
";
// line 329
if (twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 329, $this->source); })()), "cacheRegions", [], "any", false, false, false, 329), "misses", [], "any", false, false, false, 329)) {
// line 330
echo " <h3>Number of cache misses</h3>
";
// line 331
echo twig_call_macro($macros["helper"], "macro_render_simple_table", ["Region", "Misses", twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 331, $this->source); })()), "cacheRegions", [], "any", false, false, false, 331), "misses", [], "any", false, false, false, 331)], 331, $context, $this->getSourceContext());
echo "
";
}
// line 333
echo "
";
// line 334
if (twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 334, $this->source); })()), "cacheRegions", [], "any", false, false, false, 334), "puts", [], "any", false, false, false, 334)) {
// line 335
echo " <h3>Number of cache puts</h3>
";
// line 336
echo twig_call_macro($macros["helper"], "macro_render_simple_table", ["Region", "Puts", twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 336, $this->source); })()), "cacheRegions", [], "any", false, false, false, 336), "puts", [], "any", false, false, false, 336)], 336, $context, $this->getSourceContext());
echo "
";
}
// line 338
echo " ";
}
// line 339
echo " ";
}
// line 340
echo "
";
// line 341
if ((twig_length_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 341, $this->source); })()), "entities", [], "any", false, false, false, 341)) > 0)) {
// line 342
echo " <h2>Entities Mapping</h2>
";
// line 344
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 344, $this->source); })()), "entities", [], "any", false, false, false, 344));
foreach ($context['_seq'] as $context["manager"] => $context["classes"]) {
// line 345
echo " ";
if ((twig_length_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 345, $this->source); })()), "managers", [], "any", false, false, false, 345)) > 1)) {
// line 346
echo " <h3>";
echo twig_escape_filter($this->env, $context["manager"], "html", null, true);
echo " <small>entity manager</small></h3>
";
}
// line 348
echo "
";
// line 349
if (twig_test_empty($context["classes"])) {
// line 350
echo " <div class=\"empty\">
<p>No loaded entities.</p>
</div>
";
} else {
// line 354
echo " <table>
<thead>
<tr>
<th scope=\"col\">Class</th>
<th scope=\"col\">Mapping errors</th>
</tr>
</thead>
<tbody>
";
// line 362
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable($context["classes"]);
foreach ($context['_seq'] as $context["_key"] => $context["class"]) {
// line 363
echo " ";
$context["contains_errors"] = (twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "mappingErrors", [], "any", false, true, false, 363), $context["manager"], [], "array", true, true, false, 363) && twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "mappingErrors", [], "any", false, true, false, 363), $context["manager"], [], "array", false, true, false, 363), $context["class"], [], "array", true, true, false, 363));
// line 364
echo " <tr class=\"";
echo (((isset($context["contains_errors"]) || array_key_exists("contains_errors", $context) ? $context["contains_errors"] : (function () { throw new RuntimeError('Variable "contains_errors" does not exist.', 364, $this->source); })())) ? ("status-error") : (""));
echo "\">
<td>";
// line 365
echo twig_escape_filter($this->env, $context["class"], "html", null, true);
echo "</td>
<td class=\"font-normal\">
";
// line 367
if ((isset($context["contains_errors"]) || array_key_exists("contains_errors", $context) ? $context["contains_errors"] : (function () { throw new RuntimeError('Variable "contains_errors" does not exist.', 367, $this->source); })())) {
// line 368
echo " <ul>
";
// line 369
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 369, $this->source); })()), "mappingErrors", [], "any", false, false, false, 369), $context["manager"], [], "array", false, false, false, 369), $context["class"], [], "array", false, false, false, 369));
foreach ($context['_seq'] as $context["_key"] => $context["error"]) {
// line 370
echo " <li>";
echo twig_escape_filter($this->env, $context["error"], "html", null, true);
echo "</li>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['error'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 372
echo " </ul>
";
} else {
// line 374
echo " No errors.
";
}
// line 376
echo " </td>
</tr>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['class'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 379
echo " </tbody>
</table>
";
}
// line 382
echo " ";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['manager'], $context['classes'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 383
echo " ";
}
// line 384
echo "
<script type=\"text/javascript\">//<![CDATA[
function explain(link) {
\"use strict\";
var targetId = link.getAttribute('data-target-id');
var targetElement = document.getElementById(targetId);
if (targetElement.style.display != 'block') {
Sfjs.load(targetId, link.href, null, function(xhr, el) {
el.innerHTML = 'An error occurred while loading the query explanation.';
});
targetElement.style.display = 'block';
link.innerHTML = 'Hide query explanation';
} else {
targetElement.style.display = 'none';
link.innerHTML = 'Explain query';
}
return false;
}
function sortTable(header, column, targetId) {
\"use strict\";
var direction = parseInt(header.getAttribute('data-sort-direction')) || 1,
items = [],
target = document.getElementById(targetId),
rows = target.children,
headers = header.parentElement.children,
i;
for (i = 0; i < rows.length; ++i) {
items.push(rows[i]);
}
for (i = 0; i < headers.length; ++i) {
headers[i].removeAttribute('data-sort-direction');
if (headers[i].children.length > 0) {
headers[i].children[0].innerHTML = '';
}
}
header.setAttribute('data-sort-direction', (-1*direction).toString());
header.children[0].innerHTML = direction > 0 ? '<span class=\"text-muted\">▲</span>' : '<span class=\"text-muted\">▼</span>';
items.sort(function(a, b) {
return direction * (parseFloat(a.children[column].innerHTML) - parseFloat(b.children[column].innerHTML));
});
for (i = 0; i < items.length; ++i) {
Sfjs.removeClass(items[i], i % 2 ? 'even' : 'odd');
Sfjs.addClass(items[i], i % 2 ? 'odd' : 'even');
target.appendChild(items[i]);
}
}
if (navigator.clipboard) {
document.querySelectorAll('[data-clipboard-text]').forEach(function(button) {
Sfjs.removeClass(button, 'hidden');
button.addEventListener('click', function() {
navigator.clipboard.writeText(button.getAttribute('data-clipboard-text'));
})
});
}
//]]></script>
";
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
}
// line 454
public function macro_render_simple_table($__label1__ = null, $__label2__ = null, $__data__ = null, ...$__varargs__)
{
$macros = $this->macros;
$context = $this->env->mergeGlobals([
"label1" => $__label1__,
"label2" => $__label2__,
"data" => $__data__,
"varargs" => $__varargs__,
]);
$blocks = [];
ob_start();
try {
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "macro", "render_simple_table"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "macro", "render_simple_table"));
// line 455
echo " <table>
<thead>
<tr>
<th scope=\"col\" class=\"key\">";
// line 458
echo twig_escape_filter($this->env, (isset($context["label1"]) || array_key_exists("label1", $context) ? $context["label1"] : (function () { throw new RuntimeError('Variable "label1" does not exist.', 458, $this->source); })()), "html", null, true);
echo "</th>
<th scope=\"col\">";
// line 459
echo twig_escape_filter($this->env, (isset($context["label2"]) || array_key_exists("label2", $context) ? $context["label2"] : (function () { throw new RuntimeError('Variable "label2" does not exist.', 459, $this->source); })()), "html", null, true);
echo "</th>
</tr>
</thead>
<tbody>
";
// line 463
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable((isset($context["data"]) || array_key_exists("data", $context) ? $context["data"] : (function () { throw new RuntimeError('Variable "data" does not exist.', 463, $this->source); })()));
foreach ($context['_seq'] as $context["key"] => $context["value"]) {
// line 464
echo " <tr>
<th scope=\"row\">";
// line 465
echo twig_escape_filter($this->env, $context["key"], "html", null, true);
echo "</th>
<td>";
// line 466
echo twig_escape_filter($this->env, $context["value"], "html", null, true);
echo "</td>
</tr>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['key'], $context['value'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 469
echo " </tbody>
</table>
";
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
return ('' === $tmp = ob_get_contents()) ? '' : new Markup($tmp, $this->env->getCharset());
} finally {
ob_end_clean();
}
}
public function getTemplateName()
{
return "@Doctrine/Collector/db.html.twig";
}
public function isTraitable()
{
return false;
}
public function getDebugInfo()
{
return array ( 1170 => 469, 1161 => 466, 1157 => 465, 1154 => 464, 1150 => 463, 1143 => 459, 1139 => 458, 1134 => 455, 1113 => 454, 1035 => 384, 1032 => 383, 1026 => 382, 1021 => 379, 1013 => 376, 1009 => 374, 1005 => 372, 996 => 370, 992 => 369, 989 => 368, 987 => 367, 982 => 365, 977 => 364, 974 => 363, 970 => 362, 960 => 354, 954 => 350, 952 => 349, 949 => 348, 943 => 346, 940 => 345, 936 => 344, 932 => 342, 930 => 341, 927 => 340, 924 => 339, 921 => 338, 916 => 336, 913 => 335, 911 => 334, 908 => 333, 903 => 331, 900 => 330, 898 => 329, 895 => 328, 890 => 326, 887 => 325, 885 => 324, 877 => 319, 869 => 314, 861 => 309, 857 => 307, 851 => 303, 848 => 302, 842 => 298, 840 => 297, 835 => 294, 829 => 292, 823 => 288, 821 => 287, 816 => 284, 810 => 282, 804 => 278, 802 => 277, 797 => 274, 783 => 273, 778 => 270, 762 => 267, 756 => 263, 736 => 258, 732 => 256, 730 => 255, 725 => 254, 723 => 253, 717 => 251, 714 => 250, 712 => 249, 706 => 246, 703 => 245, 686 => 244, 671 => 235, 669 => 234, 666 => 233, 658 => 231, 656 => 230, 653 => 229, 647 => 226, 642 => 225, 640 => 224, 633 => 223, 631 => 222, 625 => 219, 621 => 218, 615 => 217, 611 => 215, 604 => 213, 601 => 212, 599 => 211, 596 => 210, 587 => 208, 584 => 207, 582 => 206, 579 => 205, 572 => 203, 569 => 202, 567 => 201, 560 => 199, 553 => 195, 547 => 192, 544 => 191, 539 => 189, 534 => 188, 529 => 186, 522 => 184, 518 => 183, 515 => 182, 513 => 181, 506 => 180, 503 => 179, 486 => 178, 482 => 177, 477 => 174, 472 => 172, 467 => 171, 462 => 169, 457 => 168, 455 => 167, 450 => 164, 447 => 163, 444 => 162, 441 => 161, 435 => 157, 433 => 156, 430 => 155, 424 => 153, 421 => 152, 404 => 151, 401 => 150, 396 => 148, 393 => 147, 388 => 145, 385 => 144, 382 => 143, 380 => 142, 376 => 140, 369 => 136, 362 => 132, 355 => 128, 352 => 127, 350 => 126, 343 => 122, 335 => 117, 327 => 112, 319 => 107, 305 => 95, 295 => 94, 281 => 90, 277 => 88, 275 => 87, 274 => 86, 273 => 84, 271 => 83, 268 => 82, 258 => 81, 247 => 78, 241 => 75, 238 => 74, 236 => 73, 231 => 71, 224 => 70, 214 => 69, 200 => 64, 197 => 63, 194 => 62, 187 => 57, 179 => 54, 170 => 50, 163 => 46, 159 => 44, 157 => 43, 150 => 41, 143 => 37, 136 => 33, 127 => 29, 123 => 27, 121 => 26, 118 => 25, 115 => 24, 108 => 20, 101 => 17, 94 => 14, 92 => 13, 87 => 11, 84 => 10, 81 => 9, 79 => 8, 76 => 7, 73 => 6, 63 => 5, 53 => 1, 51 => 3, 38 => 1,);
}
public function getSourceContext()
{
return new Source("{% extends request.isXmlHttpRequest ? '@WebProfiler/Profiler/ajax_layout.html.twig' : '@WebProfiler/Profiler/layout.html.twig' %}
{% import _self as helper %}
{% block toolbar %}
{% if collector.querycount > 0 or collector.invalidEntityCount > 0 %}
{% set icon %}
{% set status = collector.invalidEntityCount > 0 ? 'red' : collector.querycount > 50 ? 'yellow' %}
{{ include('@Doctrine/Collector/icon.svg') }}
{% if collector.querycount == 0 and collector.invalidEntityCount > 0 %}
<span class=\"sf-toolbar-value\">{{ collector.invalidEntityCount }}</span>
<span class=\"sf-toolbar-label\">errors</span>
{% else %}
<span class=\"sf-toolbar-value\">{{ collector.querycount }}</span>
<span class=\"sf-toolbar-info-piece-additional-detail\">
<span class=\"sf-toolbar-label\">in</span>
<span class=\"sf-toolbar-value\">{{ '%0.2f'|format(collector.time * 1000) }}</span>
<span class=\"sf-toolbar-label\">ms</span>
</span>
{% endif %}
{% endset %}
{% set text %}
<div class=\"sf-toolbar-info-piece\">
<b>Database Queries</b>
<span class=\"sf-toolbar-status {{ collector.querycount > 50 ? 'sf-toolbar-status-yellow' : '' }}\">{{ collector.querycount }}</span>
</div>
<div class=\"sf-toolbar-info-piece\">
<b>Different statements</b>
<span class=\"sf-toolbar-status\">{{ collector.groupedQueryCount }}</span>
</div>
<div class=\"sf-toolbar-info-piece\">
<b>Query time</b>
<span>{{ '%0.2f'|format(collector.time * 1000) }} ms</span>
</div>
<div class=\"sf-toolbar-info-piece\">
<b>Invalid entities</b>
<span class=\"sf-toolbar-status {{ collector.invalidEntityCount > 0 ? 'sf-toolbar-status-red' : '' }}\">{{ collector.invalidEntityCount }}</span>
</div>
{% if collector.cacheEnabled %}
<div class=\"sf-toolbar-info-piece\">
<b>Cache hits</b>
<span class=\"sf-toolbar-status sf-toolbar-status-green\">{{ collector.cacheHitsCount }}</span>
</div>
<div class=\"sf-toolbar-info-piece\">
<b>Cache misses</b>
<span class=\"sf-toolbar-status {{ collector.cacheMissesCount > 0 ? 'sf-toolbar-status-yellow' : '' }}\">{{ collector.cacheMissesCount }}</span>
</div>
<div class=\"sf-toolbar-info-piece\">
<b>Cache puts</b>
<span class=\"sf-toolbar-status {{ collector.cachePutsCount > 0 ? 'sf-toolbar-status-yellow' : '' }}\">{{ collector.cachePutsCount }}</span>
</div>
{% else %}
<div class=\"sf-toolbar-info-piece\">
<b>Second Level Cache</b>
<span class=\"sf-toolbar-status\">disabled</span>
</div>
{% endif %}
{% endset %}
{{ include('@WebProfiler/Profiler/toolbar_item.html.twig', { link: profiler_url, status: status|default('') }) }}
{% endif %}
{% endblock %}
{% block menu %}
<span class=\"label {{ collector.invalidEntityCount > 0 ? 'label-status-error' }} {{ collector.querycount == 0 ? 'disabled' }}\">
<span class=\"icon\">{{ include('@Doctrine/Collector/icon.svg') }}</span>
<strong>Doctrine</strong>
{% if collector.invalidEntityCount %}
<span class=\"count\">
<span>{{ collector.invalidEntityCount }}</span>
</span>
{% endif %}
</span>
{% endblock %}
{% block panel %}
{% if 'explain' == page %}
{{ render(controller('Doctrine\\\\Bundle\\\\DoctrineBundle\\\\Controller\\\\ProfilerController::explainAction', {
token: token,
panel: 'db',
connectionName: request.query.get('connection'),
query: request.query.get('query')
})) }}
{% else %}
{{ block('queries') }}
{% endif %}
{% endblock %}
{% block queries %}
<style>
.time-container { position: relative; }
.time-container .nowrap { position: relative; z-index: 1; text-shadow: 0 0 2px #fff; }
.time-bar { display: block; position: absolute; top: 0; left: 0; bottom: 0; background: #e0e0e0; }
.sql-runnable.sf-toggle-content.sf-toggle-visible { display: flex; flex-direction: column; }
.sql-runnable button { align-self: end; }
</style>
<h2>Query Metrics</h2>
<div class=\"metrics\">
<div class=\"metric\">
<span class=\"value\">{{ collector.querycount }}</span>
<span class=\"label\">Database Queries</span>
</div>
<div class=\"metric\">
<span class=\"value\">{{ collector.groupedQueryCount }}</span>
<span class=\"label\">Different statements</span>
</div>
<div class=\"metric\">
<span class=\"value\">{{ '%0.2f'|format(collector.time * 1000) }} ms</span>
<span class=\"label\">Query time</span>
</div>
<div class=\"metric\">
<span class=\"value\">{{ collector.invalidEntityCount }}</span>
<span class=\"label\">Invalid entities</span>
</div>
{% if collector.cacheEnabled %}
<div class=\"metric\">
<span class=\"value\">{{ collector.cacheHitsCount }}</span>
<span class=\"label\">Cache hits</span>
</div>
<div class=\"metric\">
<span class=\"value\">{{ collector.cacheMissesCount }}</span>
<span class=\"label\">Cache misses</span>
</div>
<div class=\"metric\">
<span class=\"value\">{{ collector.cachePutsCount }}</span>
<span class=\"label\">Cache puts</span>
</div>
{% endif %}
</div>
{% set group_queries = request.query.getBoolean('group') %}
{% if group_queries %}
<h2>Grouped Statements</h2>
<p><a href=\"{{ path('_profiler', { panel: 'db', token: token }) }}\">Show all queries</a></p>
{% else %}
<h2>Queries</h2>
<p><a href=\"{{ path('_profiler', { panel: 'db', token: token, group: true }) }}\">Group similar statements</a></p>
{% endif %}
{% for connection, queries in collector.queries %}
{% if collector.connections|length > 1 %}
<h3>{{ connection }} <small>connection</small></h3>
{% endif %}
{% if queries is empty %}
<div class=\"empty\">
<p>No database queries were performed.</p>
</div>
{% else %}
{% if group_queries %}
{% set queries = collector.groupedQueries[connection] %}
{% endif %}
<table class=\"alt queries-table\">
<thead>
<tr>
{% if group_queries %}
<th class=\"nowrap\" onclick=\"javascript:sortTable(this, 0, 'queries-{{ loop.index }}')\" data-sort-direction=\"1\" style=\"cursor: pointer;\">Time<span class=\"text-muted\">▼</span></th>
<th class=\"nowrap\" onclick=\"javascript:sortTable(this, 1, 'queries-{{ loop.index }}')\" style=\"cursor: pointer;\">Count<span></span></th>
{% else %}
<th class=\"nowrap\" onclick=\"javascript:sortTable(this, 0, 'queries-{{ loop.index }}')\" data-sort-direction=\"-1\" style=\"cursor: pointer;\">#<span class=\"text-muted\">▲</span></th>
<th class=\"nowrap\" onclick=\"javascript:sortTable(this, 1, 'queries-{{ loop.index }}')\" style=\"cursor: pointer;\">Time<span></span></th>
{% endif %}
<th style=\"width: 100%;\">Info</th>
</tr>
</thead>
<tbody id=\"queries-{{ loop.index }}\">
{% for i, query in queries %}
{% set i = group_queries ? query.index : i %}
<tr id=\"queryNo-{{ i }}-{{ loop.parent.loop.index }}\">
{% if group_queries %}
<td class=\"time-container\">
<span class=\"time-bar\" style=\"width:{{ '%0.2f'|format(query.executionPercent) }}%\"></span>
<span class=\"nowrap\">{{ '%0.2f'|format(query.executionMS * 1000) }} ms<br />({{ '%0.2f'|format(query.executionPercent) }}%)</span>
</td>
<td class=\"nowrap\">{{ query.count }}</td>
{% else %}
<td class=\"nowrap\">{{ loop.index }}</td>
<td class=\"nowrap\">{{ '%0.2f'|format(query.executionMS * 1000) }} ms</td>
{% endif %}
<td>
{{ query.sql|doctrine_prettify_sql }}
<div>
<strong class=\"font-normal text-small\">Parameters</strong>: {{ profiler_dump(query.params, 2) }}
</div>
<div class=\"text-small font-normal\">
<a href=\"#\" class=\"sf-toggle link-inverse\" data-toggle-selector=\"#formatted-query-{{ i }}-{{ loop.parent.loop.index }}\" data-toggle-alt-content=\"Hide formatted query\">View formatted query</a>
{% if query.runnable %}
<a href=\"#\" class=\"sf-toggle link-inverse\" data-toggle-selector=\"#original-query-{{ i }}-{{ loop.parent.loop.index }}\" data-toggle-alt-content=\"Hide runnable query\">View runnable query</a>
{% endif %}
{% if query.explainable %}
<a class=\"link-inverse\" href=\"{{ path('_profiler', { panel: 'db', token: token, page: 'explain', connection: connection, query: i }) }}\" onclick=\"return explain(this);\" data-target-id=\"explain-{{ i }}-{{ loop.parent.loop.index }}\">Explain query</a>
{% endif %}
{% if query.backtrace is defined %}
<a href=\"#\" class=\"sf-toggle link-inverse\" data-toggle-selector=\"#backtrace-{{ i }}-{{ loop.parent.loop.index }}\" data-toggle-alt-content=\"Hide query backtrace\">View query backtrace</a>
{% endif %}
</div>
<div id=\"formatted-query-{{ i }}-{{ loop.parent.loop.index }}\" class=\"sql-runnable hidden\">
{{ query.sql|doctrine_format_sql(highlight = true) }}
<button class=\"btn btn-sm hidden\" data-clipboard-text=\"{{ query.sql|doctrine_format_sql(highlight = false)|e('html_attr') }}\">Copy</button>
</div>
{% if query.runnable %}
<div id=\"original-query-{{ i }}-{{ loop.parent.loop.index }}\" class=\"sql-runnable hidden\">
{% set runnable_sql = (query.sql ~ ';')|doctrine_replace_query_parameters(query.params) %}
{{ runnable_sql|doctrine_prettify_sql }}
<button class=\"btn btn-sm hidden\" data-clipboard-text=\"{{ runnable_sql|e('html_attr') }}\">Copy</button>
</div>
{% endif %}
{% if query.explainable %}
<div id=\"explain-{{ i }}-{{ loop.parent.loop.index }}\" class=\"sql-explain\"></div>
{% endif %}
{% if query.backtrace is defined %}
<div id=\"backtrace-{{ i }}-{{ loop.parent.loop.index }}\" class=\"hidden\">
<table>
<thead>
<tr>
<th scope=\"col\">#</th>
<th scope=\"col\">File/Call</th>
</tr>
</thead>
<tbody>
{% for trace in query.backtrace %}
<tr>
<td>{{ loop.index }}</td>
<td>
<span class=\"text-small\">
{% set line_number = trace.line|default(1) %}
{% if trace.file is defined %}
<a href=\"{{ trace.file|file_link(line_number) }}\">
{% endif %}
{{- trace.class|default ~ (trace.class is defined ? trace.type|default('::')) -}}
<span class=\"status-warning\">{{ trace.function }}</span>
{% if trace.file is defined %}
</a>
{% endif %}
(line {{ line_number }})
</span>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
{% endfor %}
<h2>Database Connections</h2>
{% if not collector.connections %}
<div class=\"empty\">
<p>There are no configured database connections.</p>
</div>
{% else %}
{{ helper.render_simple_table('Name', 'Service', collector.connections) }}
{% endif %}
<h2>Entity Managers</h2>
{% if not collector.managers %}
<div class=\"empty\">
<p>There are no configured entity managers.</p>
</div>
{% else %}
{{ helper.render_simple_table('Name', 'Service', collector.managers) }}
{% endif %}
<h2>Second Level Cache</h2>
{% if not collector.cacheEnabled %}
<div class=\"empty\">
<p>Second Level Cache is not enabled.</p>
</div>
{% else %}
{% if not collector.cacheCounts %}
<div class=\"empty\">
<p>Second level cache information is not available.</p>
</div>
{% else %}
<div class=\"metrics\">
<div class=\"metric\">
<span class=\"value\">{{ collector.cacheCounts.hits }}</span>
<span class=\"label\">Hits</span>
</div>
<div class=\"metric\">
<span class=\"value\">{{ collector.cacheCounts.misses }}</span>
<span class=\"label\">Misses</span>
</div>
<div class=\"metric\">
<span class=\"value\">{{ collector.cacheCounts.puts }}</span>
<span class=\"label\">Puts</span>
</div>
</div>
{% if collector.cacheRegions.hits %}
<h3>Number of cache hits</h3>
{{ helper.render_simple_table('Region', 'Hits', collector.cacheRegions.hits) }}
{% endif %}
{% if collector.cacheRegions.misses %}
<h3>Number of cache misses</h3>
{{ helper.render_simple_table('Region', 'Misses', collector.cacheRegions.misses) }}
{% endif %}
{% if collector.cacheRegions.puts %}
<h3>Number of cache puts</h3>
{{ helper.render_simple_table('Region', 'Puts', collector.cacheRegions.puts) }}
{% endif %}
{% endif %}
{% endif %}
{% if collector.entities|length > 0 %}
<h2>Entities Mapping</h2>
{% for manager, classes in collector.entities %}
{% if collector.managers|length > 1 %}
<h3>{{ manager }} <small>entity manager</small></h3>
{% endif %}
{% if classes is empty %}
<div class=\"empty\">
<p>No loaded entities.</p>
</div>
{% else %}
<table>
<thead>
<tr>
<th scope=\"col\">Class</th>
<th scope=\"col\">Mapping errors</th>
</tr>
</thead>
<tbody>
{% for class in classes %}
{% set contains_errors = collector.mappingErrors[manager] is defined and collector.mappingErrors[manager][class] is defined %}
<tr class=\"{{ contains_errors ? 'status-error' }}\">
<td>{{ class }}</td>
<td class=\"font-normal\">
{% if contains_errors %}
<ul>
{% for error in collector.mappingErrors[manager][class] %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% else %}
No errors.
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
{% endfor %}
{% endif %}
<script type=\"text/javascript\">//<![CDATA[
function explain(link) {
\"use strict\";
var targetId = link.getAttribute('data-target-id');
var targetElement = document.getElementById(targetId);
if (targetElement.style.display != 'block') {
Sfjs.load(targetId, link.href, null, function(xhr, el) {
el.innerHTML = 'An error occurred while loading the query explanation.';
});
targetElement.style.display = 'block';
link.innerHTML = 'Hide query explanation';
} else {
targetElement.style.display = 'none';
link.innerHTML = 'Explain query';
}
return false;
}
function sortTable(header, column, targetId) {
\"use strict\";
var direction = parseInt(header.getAttribute('data-sort-direction')) || 1,
items = [],
target = document.getElementById(targetId),
rows = target.children,
headers = header.parentElement.children,
i;
for (i = 0; i < rows.length; ++i) {
items.push(rows[i]);
}
for (i = 0; i < headers.length; ++i) {
headers[i].removeAttribute('data-sort-direction');
if (headers[i].children.length > 0) {
headers[i].children[0].innerHTML = '';
}
}
header.setAttribute('data-sort-direction', (-1*direction).toString());
header.children[0].innerHTML = direction > 0 ? '<span class=\"text-muted\">▲</span>' : '<span class=\"text-muted\">▼</span>';
items.sort(function(a, b) {
return direction * (parseFloat(a.children[column].innerHTML) - parseFloat(b.children[column].innerHTML));
});
for (i = 0; i < items.length; ++i) {
Sfjs.removeClass(items[i], i % 2 ? 'even' : 'odd');
Sfjs.addClass(items[i], i % 2 ? 'odd' : 'even');
target.appendChild(items[i]);
}
}
if (navigator.clipboard) {
document.querySelectorAll('[data-clipboard-text]').forEach(function(button) {
Sfjs.removeClass(button, 'hidden');
button.addEventListener('click', function() {
navigator.clipboard.writeText(button.getAttribute('data-clipboard-text'));
})
});
}
//]]></script>
{% endblock %}
{% macro render_simple_table(label1, label2, data) %}
<table>
<thead>
<tr>
<th scope=\"col\" class=\"key\">{{ label1 }}</th>
<th scope=\"col\">{{ label2 }}</th>
</tr>
</thead>
<tbody>
{% for key, value in data %}
<tr>
<th scope=\"row\">{{ key }}</th>
<td>{{ value }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endmacro %}
", "@Doctrine/Collector/db.html.twig", "/home/bestofi/bestof/vendor/doctrine/doctrine-bundle/Resources/views/Collector/db.html.twig");
}
}