1809 lines
123 KiB
PHP
1809 lines
123 KiB
PHP
<?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_c295f9f1f71db3af8fb1f35cc6bec2ed277511512b55fb14143081ccdef7ed6d 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_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "@Doctrine/Collector/db.html.twig"));
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_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_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
|
|
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
|
|
|
|
}
|
|
|
|
// line 5
|
|
public function block_toolbar($context, array $blocks = [])
|
|
{
|
|
$macros = $this->macros;
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "toolbar"));
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_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
|
|
if (((isset($context["profiler_markup_version"]) || array_key_exists("profiler_markup_version", $context) ? $context["profiler_markup_version"] : (function () { throw new RuntimeError('Variable "profiler_markup_version" does not exist.', 11, $this->source); })()) >= 3)) {
|
|
// line 12
|
|
echo " ";
|
|
echo twig_include($this->env, $context, "@Doctrine/Collector/database.svg");
|
|
echo "
|
|
";
|
|
} else {
|
|
// line 14
|
|
echo " <span class=\"icon\">";
|
|
echo twig_include($this->env, $context, "@Doctrine/Collector/icon.svg");
|
|
echo "</span>
|
|
";
|
|
}
|
|
// line 16
|
|
echo "
|
|
";
|
|
// line 17
|
|
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.', 17, $this->source); })()), "querycount", [], "any", false, false, false, 17) == 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.', 17, $this->source); })()), "invalidEntityCount", [], "any", false, false, false, 17) > 0))) {
|
|
// line 18
|
|
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.', 18, $this->source); })()), "invalidEntityCount", [], "any", false, false, false, 18), "html", null, true);
|
|
echo "</span>
|
|
<span class=\"sf-toolbar-label\">errors</span>
|
|
";
|
|
} else {
|
|
// line 21
|
|
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.', 21, $this->source); })()), "querycount", [], "any", false, false, false, 21), "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 24
|
|
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.', 24, $this->source); })()), "time", [], "any", false, false, false, 24) * 1000)), "html", null, true);
|
|
echo "</span>
|
|
<span class=\"sf-toolbar-label\">ms</span>
|
|
</span>
|
|
";
|
|
}
|
|
// line 28
|
|
echo " ";
|
|
$context["icon"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
|
|
// line 29
|
|
echo "
|
|
";
|
|
// line 30
|
|
ob_start();
|
|
// line 31
|
|
echo " <div class=\"sf-toolbar-info-piece\">
|
|
<b>Database Queries</b>
|
|
<span class=\"sf-toolbar-status ";
|
|
// line 33
|
|
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.', 33, $this->source); })()), "querycount", [], "any", false, false, false, 33) > 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.', 33, $this->source); })()), "querycount", [], "any", false, false, false, 33), "html", null, true);
|
|
echo "</span>
|
|
</div>
|
|
<div class=\"sf-toolbar-info-piece\">
|
|
<b>Different statements</b>
|
|
<span class=\"sf-toolbar-status\">";
|
|
// line 37
|
|
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.', 37, $this->source); })()), "groupedQueryCount", [], "any", false, false, false, 37), "html", null, true);
|
|
echo "</span>
|
|
</div>
|
|
<div class=\"sf-toolbar-info-piece\">
|
|
<b>Query time</b>
|
|
<span>";
|
|
// line 41
|
|
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.', 41, $this->source); })()), "time", [], "any", false, false, false, 41) * 1000)), "html", null, true);
|
|
echo " ms</span>
|
|
</div>
|
|
<div class=\"sf-toolbar-info-piece\">
|
|
<b>Invalid entities</b>
|
|
<span class=\"sf-toolbar-status ";
|
|
// line 45
|
|
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.', 45, $this->source); })()), "invalidEntityCount", [], "any", false, false, false, 45) > 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.', 45, $this->source); })()), "invalidEntityCount", [], "any", false, false, false, 45), "html", null, true);
|
|
echo "</span>
|
|
</div>
|
|
";
|
|
// line 47
|
|
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.', 47, $this->source); })()), "cacheEnabled", [], "any", false, false, false, 47)) {
|
|
// line 48
|
|
echo " <div class=\"sf-toolbar-info-piece\">
|
|
<b>Cache hits</b>
|
|
<span class=\"sf-toolbar-status sf-toolbar-status-green\">";
|
|
// line 50
|
|
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); })()), "cacheHitsCount", [], "any", false, false, false, 50), "html", null, true);
|
|
echo "</span>
|
|
</div>
|
|
<div class=\"sf-toolbar-info-piece\">
|
|
<b>Cache misses</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); })()), "cacheMissesCount", [], "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); })()), "cacheMissesCount", [], "any", false, false, false, 54), "html", null, true);
|
|
echo "</span>
|
|
</div>
|
|
<div class=\"sf-toolbar-info-piece\">
|
|
<b>Cache puts</b>
|
|
<span class=\"sf-toolbar-status ";
|
|
// line 58
|
|
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.', 58, $this->source); })()), "cachePutsCount", [], "any", false, false, false, 58) > 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.', 58, $this->source); })()), "cachePutsCount", [], "any", false, false, false, 58), "html", null, true);
|
|
echo "</span>
|
|
</div>
|
|
";
|
|
} else {
|
|
// line 61
|
|
echo " <div class=\"sf-toolbar-info-piece\">
|
|
<b>Second Level Cache</b>
|
|
<span class=\"sf-toolbar-status\">disabled</span>
|
|
</div>
|
|
";
|
|
}
|
|
// line 66
|
|
echo " ";
|
|
$context["text"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
|
|
// line 67
|
|
echo "
|
|
";
|
|
// line 68
|
|
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.', 68, $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.', 68, $this->source); })()), "")) : (""))]);
|
|
echo "
|
|
|
|
";
|
|
}
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
|
|
|
|
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
|
|
|
|
}
|
|
|
|
// line 73
|
|
public function block_menu($context, array $blocks = [])
|
|
{
|
|
$macros = $this->macros;
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "menu"));
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "menu"));
|
|
|
|
// line 74
|
|
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.', 74, $this->source); })()), "invalidEntityCount", [], "any", false, false, false, 74) > 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.', 74, $this->source); })()), "querycount", [], "any", false, false, false, 74) == 0)) ? ("disabled") : (""));
|
|
echo "\">
|
|
<span class=\"icon\">";
|
|
// line 75
|
|
echo twig_include($this->env, $context, (("@Doctrine/Collector/" . ((((isset($context["profiler_markup_version"]) || array_key_exists("profiler_markup_version", $context) ? $context["profiler_markup_version"] : (function () { throw new RuntimeError('Variable "profiler_markup_version" does not exist.', 75, $this->source); })()) < 3)) ? ("icon") : ("database"))) . ".svg"));
|
|
echo "</span>
|
|
<strong>Doctrine</strong>
|
|
";
|
|
// line 77
|
|
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.', 77, $this->source); })()), "invalidEntityCount", [], "any", false, false, false, 77)) {
|
|
// line 78
|
|
echo " <span class=\"count\">
|
|
<span>";
|
|
// line 79
|
|
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.', 79, $this->source); })()), "invalidEntityCount", [], "any", false, false, false, 79), "html", null, true);
|
|
echo "</span>
|
|
</span>
|
|
";
|
|
}
|
|
// line 82
|
|
echo " </span>
|
|
";
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
|
|
|
|
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
|
|
|
|
}
|
|
|
|
// line 85
|
|
public function block_panel($context, array $blocks = [])
|
|
{
|
|
$macros = $this->macros;
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "panel"));
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "panel"));
|
|
|
|
// line 86
|
|
echo " ";
|
|
if (("explain" == (isset($context["page"]) || array_key_exists("page", $context) ? $context["page"] : (function () { throw new RuntimeError('Variable "page" does not exist.', 86, $this->source); })()))) {
|
|
// line 87
|
|
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 88
|
|
(isset($context["token"]) || array_key_exists("token", $context) ? $context["token"] : (function () { throw new RuntimeError('Variable "token" does not exist.', 88, $this->source); })()), "panel" => "db", "connectionName" => twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, // line 90
|
|
(isset($context["request"]) || array_key_exists("request", $context) ? $context["request"] : (function () { throw new RuntimeError('Variable "request" does not exist.', 90, $this->source); })()), "query", [], "any", false, false, false, 90), "get", [0 => "connection"], "method", false, false, false, 90), "query" => twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, // line 91
|
|
(isset($context["request"]) || array_key_exists("request", $context) ? $context["request"] : (function () { throw new RuntimeError('Variable "request" does not exist.', 91, $this->source); })()), "query", [], "any", false, false, false, 91), "get", [0 => "query"], "method", false, false, false, 91)]));
|
|
// line 92
|
|
echo "
|
|
";
|
|
} else {
|
|
// line 94
|
|
echo " ";
|
|
$this->displayBlock("queries", $context, $blocks);
|
|
echo "
|
|
";
|
|
}
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
|
|
|
|
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
|
|
|
|
}
|
|
|
|
// line 98
|
|
public function block_queries($context, array $blocks = [])
|
|
{
|
|
$macros = $this->macros;
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "queries"));
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "queries"));
|
|
|
|
// line 99
|
|
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-group\">
|
|
<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); })()), "querycount", [], "any", false, false, false, 112), "html", null, true);
|
|
echo "</span>
|
|
<span class=\"label\">Database Queries</span>
|
|
</div>
|
|
|
|
<div class=\"metric\">
|
|
<span class=\"value\">";
|
|
// line 117
|
|
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.', 117, $this->source); })()), "groupedQueryCount", [], "any", false, false, false, 117), "html", null, true);
|
|
echo "</span>
|
|
<span class=\"label\">Different statements</span>
|
|
</div>
|
|
|
|
<div class=\"metric\">
|
|
<span class=\"value\">";
|
|
// line 122
|
|
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.', 122, $this->source); })()), "time", [], "any", false, false, false, 122) * 1000)), "html", null, true);
|
|
echo " ms</span>
|
|
<span class=\"label\">Query time</span>
|
|
</div>
|
|
|
|
<div class=\"metric\">
|
|
<span class=\"value\">";
|
|
// line 127
|
|
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.', 127, $this->source); })()), "invalidEntityCount", [], "any", false, false, false, 127), "html", null, true);
|
|
echo "</span>
|
|
<span class=\"label\">Invalid entities</span>
|
|
</div>
|
|
</div>
|
|
|
|
";
|
|
// line 132
|
|
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.', 132, $this->source); })()), "cacheEnabled", [], "any", false, false, false, 132)) {
|
|
// line 133
|
|
echo " <div class=\"metric-group\">
|
|
<div class=\"metric\">
|
|
<span class=\"value\">";
|
|
// line 135
|
|
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.', 135, $this->source); })()), "cacheHitsCount", [], "any", false, false, false, 135), "html", null, true);
|
|
echo "</span>
|
|
<span class=\"label\">Cache hits</span>
|
|
</div>
|
|
<div class=\"metric\">
|
|
<span class=\"value\">";
|
|
// line 139
|
|
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.', 139, $this->source); })()), "cacheMissesCount", [], "any", false, false, false, 139), "html", null, true);
|
|
echo "</span>
|
|
<span class=\"label\">Cache misses</span>
|
|
</div>
|
|
<div class=\"metric\">
|
|
<span class=\"value\">";
|
|
// line 143
|
|
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.', 143, $this->source); })()), "cachePutsCount", [], "any", false, false, false, 143), "html", null, true);
|
|
echo "</span>
|
|
<span class=\"label\">Cache puts</span>
|
|
</div>
|
|
</div>
|
|
";
|
|
}
|
|
// line 148
|
|
echo " </div>
|
|
|
|
<div class=\"sf-tabs\" style=\"margin-top: 20px;\">
|
|
<div class=\"tab ";
|
|
// line 151
|
|
echo ((twig_test_empty(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))) ? ("disabled") : (""));
|
|
echo "\">
|
|
";
|
|
// line 152
|
|
$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.', 152, $this->source); })()), "query", [], "any", false, false, false, 152), "getBoolean", [0 => "group"], "method", false, false, false, 152);
|
|
// line 153
|
|
echo " <h3 class=\"tab-title\">
|
|
";
|
|
// line 154
|
|
if ((isset($context["group_queries"]) || array_key_exists("group_queries", $context) ? $context["group_queries"] : (function () { throw new RuntimeError('Variable "group_queries" does not exist.', 154, $this->source); })())) {
|
|
// line 155
|
|
echo " Grouped Statements
|
|
";
|
|
} else {
|
|
// line 157
|
|
echo " Queries
|
|
";
|
|
}
|
|
// line 159
|
|
echo " </h3>
|
|
|
|
<div class=\"tab-content\">
|
|
";
|
|
// line 162
|
|
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.', 162, $this->source); })()), "queries", [], "any", false, false, false, 162)) {
|
|
// line 163
|
|
echo " <div class=\"empty\">
|
|
<p>No executed queries.</p>
|
|
</div>
|
|
";
|
|
} else {
|
|
// line 167
|
|
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.', 167, $this->source); })())) {
|
|
// line 168
|
|
echo " <p><a href=\"";
|
|
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.', 168, $this->source); })())]), "html", null, true);
|
|
echo "\">Show all queries</a></p>
|
|
";
|
|
} else {
|
|
// line 170
|
|
echo " <p><a href=\"";
|
|
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.', 170, $this->source); })()), "group" => true]), "html", null, true);
|
|
echo "\">Group similar statements</a></p>
|
|
";
|
|
}
|
|
// line 172
|
|
echo "
|
|
";
|
|
// line 173
|
|
$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.', 173, $this->source); })()), "queries", [], "any", false, false, false, 173));
|
|
$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 174
|
|
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.', 174, $this->source); })()), "connections", [], "any", false, false, false, 174)) > 1)) {
|
|
// line 175
|
|
echo " <h3>";
|
|
echo twig_escape_filter($this->env, $context["connection"], "html", null, true);
|
|
echo " <small>connection</small></h3>
|
|
";
|
|
}
|
|
// line 177
|
|
echo "
|
|
";
|
|
// line 178
|
|
if (twig_test_empty($context["queries"])) {
|
|
// line 179
|
|
echo " <div class=\"empty\">
|
|
<p>No database queries were performed.</p>
|
|
</div>
|
|
";
|
|
} else {
|
|
// line 183
|
|
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.', 183, $this->source); })())) {
|
|
// line 184
|
|
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.', 184, $this->source); })()), "groupedQueries", [], "any", false, false, false, 184), $context["connection"], [], "array", false, false, false, 184);
|
|
// line 185
|
|
echo " ";
|
|
}
|
|
// line 186
|
|
echo " <table class=\"alt queries-table\">
|
|
<thead>
|
|
<tr>
|
|
";
|
|
// line 189
|
|
if ((isset($context["group_queries"]) || array_key_exists("group_queries", $context) ? $context["group_queries"] : (function () { throw new RuntimeError('Variable "group_queries" does not exist.', 189, $this->source); })())) {
|
|
// line 190
|
|
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, 190), "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 191
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 191), "html", null, true);
|
|
echo "')\" style=\"cursor: pointer;\">Count<span></span></th>
|
|
";
|
|
} else {
|
|
// line 193
|
|
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, 193), "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 194
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 194), "html", null, true);
|
|
echo "')\" style=\"cursor: pointer;\">Time<span></span></th>
|
|
";
|
|
}
|
|
// line 196
|
|
echo " <th style=\"width: 100%;\">Info</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id=\"queries-";
|
|
// line 199
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 199), "html", null, true);
|
|
echo "\">
|
|
";
|
|
// line 200
|
|
$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 201
|
|
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.', 201, $this->source); })())) ? (twig_get_attribute($this->env, $this->source, $context["query"], "index", [], "any", false, false, false, 201)) : ($context["i"]));
|
|
// line 202
|
|
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, 202), "loop", [], "any", false, false, false, 202), "index", [], "any", false, false, false, 202), "html", null, true);
|
|
echo "\">
|
|
";
|
|
// line 203
|
|
if ((isset($context["group_queries"]) || array_key_exists("group_queries", $context) ? $context["group_queries"] : (function () { throw new RuntimeError('Variable "group_queries" does not exist.', 203, $this->source); })())) {
|
|
// line 204
|
|
echo " <td class=\"time-container\">
|
|
<span class=\"time-bar\" style=\"width:";
|
|
// line 205
|
|
echo twig_escape_filter($this->env, twig_sprintf("%0.2f", twig_get_attribute($this->env, $this->source, $context["query"], "executionPercent", [], "any", false, false, false, 205)), "html", null, true);
|
|
echo "%\"></span>
|
|
<span class=\"nowrap\">";
|
|
// line 206
|
|
echo twig_escape_filter($this->env, twig_sprintf("%0.2f", (twig_get_attribute($this->env, $this->source, $context["query"], "executionMS", [], "any", false, false, false, 206) * 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, 206)), "html", null, true);
|
|
echo "%)</span>
|
|
</td>
|
|
<td class=\"nowrap\">";
|
|
// line 208
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["query"], "count", [], "any", false, false, false, 208), "html", null, true);
|
|
echo "</td>
|
|
";
|
|
} else {
|
|
// line 210
|
|
echo " <td class=\"nowrap\">";
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 210), "html", null, true);
|
|
echo "</td>
|
|
<td class=\"nowrap\">";
|
|
// line 211
|
|
echo twig_escape_filter($this->env, twig_sprintf("%0.2f", (twig_get_attribute($this->env, $this->source, $context["query"], "executionMS", [], "any", false, false, false, 211) * 1000)), "html", null, true);
|
|
echo " ms</td>
|
|
";
|
|
}
|
|
// line 213
|
|
echo " <td>
|
|
";
|
|
// line 214
|
|
echo $this->extensions['Doctrine\Bundle\DoctrineBundle\Twig\DoctrineExtension']->prettifySql(twig_get_attribute($this->env, $this->source, $context["query"], "sql", [], "any", false, false, false, 214));
|
|
echo "
|
|
|
|
<div>
|
|
<strong class=\"font-normal text-small\">Parameters</strong>: ";
|
|
// line 217
|
|
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, 217), 2);
|
|
echo "
|
|
</div>
|
|
|
|
<div class=\"text-small font-normal\">
|
|
<a href=\"#\" class=\"sf-toggle link-inverse\" data-toggle-selector=\"#formatted-query-";
|
|
// line 221
|
|
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, 221), "loop", [], "any", false, false, false, 221), "index", [], "any", false, false, false, 221), "html", null, true);
|
|
echo "\" data-toggle-alt-content=\"Hide formatted query\">View formatted query</a>
|
|
|
|
";
|
|
// line 223
|
|
if (twig_get_attribute($this->env, $this->source, $context["query"], "runnable", [], "any", false, false, false, 223)) {
|
|
// line 224
|
|
echo "
|
|
<a href=\"#\" class=\"sf-toggle link-inverse\" data-toggle-selector=\"#original-query-";
|
|
// line 225
|
|
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, 225), "loop", [], "any", false, false, false, 225), "index", [], "any", false, false, false, 225), "html", null, true);
|
|
echo "\" data-toggle-alt-content=\"Hide runnable query\">View runnable query</a>
|
|
";
|
|
}
|
|
// line 227
|
|
echo "
|
|
";
|
|
// line 228
|
|
if (twig_get_attribute($this->env, $this->source, $context["query"], "explainable", [], "any", false, false, false, 228)) {
|
|
// line 229
|
|
echo "
|
|
<a class=\"link-inverse\" href=\"";
|
|
// line 230
|
|
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.', 230, $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, 230), "loop", [], "any", false, false, false, 230), "index", [], "any", false, false, false, 230), "html", null, true);
|
|
echo "\">Explain query</a>
|
|
";
|
|
}
|
|
// line 232
|
|
echo "
|
|
";
|
|
// line 233
|
|
if (twig_get_attribute($this->env, $this->source, $context["query"], "backtrace", [], "any", true, true, false, 233)) {
|
|
// line 234
|
|
echo "
|
|
<a href=\"#\" class=\"sf-toggle link-inverse\" data-toggle-selector=\"#backtrace-";
|
|
// line 235
|
|
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 "\" data-toggle-alt-content=\"Hide query backtrace\">View query backtrace</a>
|
|
";
|
|
}
|
|
// line 237
|
|
echo " </div>
|
|
|
|
<div id=\"formatted-query-";
|
|
// line 239
|
|
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, 239), "loop", [], "any", false, false, false, 239), "index", [], "any", false, false, false, 239), "html", null, true);
|
|
echo "\" class=\"sql-runnable hidden\">
|
|
";
|
|
// line 240
|
|
echo $this->extensions['Doctrine\Bundle\DoctrineBundle\Twig\DoctrineExtension']->formatSql(twig_get_attribute($this->env, $this->source, $context["query"], "sql", [], "any", false, false, false, 240), true);
|
|
echo "
|
|
<button class=\"btn btn-sm hidden\" data-clipboard-text=\"";
|
|
// line 241
|
|
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, 241), false), "html_attr");
|
|
echo "\">Copy</button>
|
|
</div>
|
|
|
|
";
|
|
// line 244
|
|
if (twig_get_attribute($this->env, $this->source, $context["query"], "runnable", [], "any", false, false, false, 244)) {
|
|
// line 245
|
|
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, 245), "loop", [], "any", false, false, false, 245), "index", [], "any", false, false, false, 245), "html", null, true);
|
|
echo "\" class=\"sql-runnable hidden\">
|
|
";
|
|
// line 246
|
|
$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, 246) . ";"), twig_get_attribute($this->env, $this->source, $context["query"], "params", [], "any", false, false, false, 246));
|
|
// line 247
|
|
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.', 247, $this->source); })()));
|
|
echo "
|
|
<button class=\"btn btn-sm hidden\" data-clipboard-text=\"";
|
|
// line 248
|
|
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.', 248, $this->source); })()), "html_attr");
|
|
echo "\">Copy</button>
|
|
</div>
|
|
";
|
|
}
|
|
// line 251
|
|
echo "
|
|
";
|
|
// line 252
|
|
if (twig_get_attribute($this->env, $this->source, $context["query"], "explainable", [], "any", false, false, false, 252)) {
|
|
// line 253
|
|
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, 253), "loop", [], "any", false, false, false, 253), "index", [], "any", false, false, false, 253), "html", null, true);
|
|
echo "\" class=\"sql-explain\"></div>
|
|
";
|
|
}
|
|
// line 255
|
|
echo "
|
|
";
|
|
// line 256
|
|
if (twig_get_attribute($this->env, $this->source, $context["query"], "backtrace", [], "any", true, true, false, 256)) {
|
|
// line 257
|
|
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, 257), "loop", [], "any", false, false, false, 257), "index", [], "any", false, false, false, 257), "html", null, true);
|
|
echo "\" class=\"hidden\">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th scope=\"col\">#</th>
|
|
<th scope=\"col\">File/Call</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
";
|
|
// line 266
|
|
$context['_parent'] = $context;
|
|
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, $context["query"], "backtrace", [], "any", false, false, false, 266));
|
|
$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 267
|
|
echo " <tr>
|
|
<td>";
|
|
// line 268
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 268), "html", null, true);
|
|
echo "</td>
|
|
<td>
|
|
<span class=\"text-small\">
|
|
";
|
|
// line 271
|
|
$context["line_number"] = ((twig_get_attribute($this->env, $this->source, $context["trace"], "line", [], "any", true, true, false, 271)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, $context["trace"], "line", [], "any", false, false, false, 271), 1)) : (1));
|
|
// line 272
|
|
echo " ";
|
|
if (twig_get_attribute($this->env, $this->source, $context["trace"], "file", [], "any", true, true, false, 272)) {
|
|
// line 273
|
|
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, 273), (isset($context["line_number"]) || array_key_exists("line_number", $context) ? $context["line_number"] : (function () { throw new RuntimeError('Variable "line_number" does not exist.', 273, $this->source); })())), "html", null, true);
|
|
echo "\">
|
|
";
|
|
}
|
|
// line 275
|
|
echo twig_escape_filter($this->env, (((twig_get_attribute($this->env, $this->source, $context["trace"], "class", [], "any", true, true, false, 275)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, $context["trace"], "class", [], "any", false, false, false, 275))) : ("")) . ((twig_get_attribute($this->env, $this->source, $context["trace"], "class", [], "any", true, true, false, 275)) ? (((twig_get_attribute($this->env, $this->source, $context["trace"], "type", [], "any", true, true, false, 275)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, $context["trace"], "type", [], "any", false, false, false, 275), "::")) : ("::"))) : (""))), "html", null, true);
|
|
// line 276
|
|
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, 276), "html", null, true);
|
|
echo "</span>
|
|
";
|
|
// line 277
|
|
if (twig_get_attribute($this->env, $this->source, $context["trace"], "file", [], "any", true, true, false, 277)) {
|
|
// line 278
|
|
echo " </a>
|
|
";
|
|
}
|
|
// line 280
|
|
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.', 280, $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 285
|
|
echo " </tbody>
|
|
</table>
|
|
</div>
|
|
";
|
|
}
|
|
// line 289
|
|
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 292
|
|
echo " </tbody>
|
|
</table>
|
|
";
|
|
}
|
|
// line 295
|
|
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 296
|
|
echo " ";
|
|
}
|
|
// line 297
|
|
echo " </div>
|
|
</div>
|
|
|
|
<div class=\"tab ";
|
|
// line 300
|
|
echo ((twig_test_empty(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.', 300, $this->source); })()), "connections", [], "any", false, false, false, 300))) ? ("disabled") : (""));
|
|
echo "\">
|
|
<h3 class=\"tab-title\">Database Connections</h3>
|
|
<div class=\"tab-content\">
|
|
";
|
|
// line 303
|
|
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.', 303, $this->source); })()), "connections", [], "any", false, false, false, 303)) {
|
|
// line 304
|
|
echo " <div class=\"empty\">
|
|
<p>There are no configured database connections.</p>
|
|
</div>
|
|
";
|
|
} else {
|
|
// line 308
|
|
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.', 308, $this->source); })()), "connections", [], "any", false, false, false, 308)], 308, $context, $this->getSourceContext());
|
|
echo "
|
|
";
|
|
}
|
|
// line 310
|
|
echo " </div>
|
|
</div>
|
|
|
|
<div class=\"tab ";
|
|
// line 313
|
|
echo ((twig_test_empty(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.', 313, $this->source); })()), "managers", [], "any", false, false, false, 313))) ? ("disabled") : (""));
|
|
echo "\">
|
|
<h3 class=\"tab-title\">Entity Managers</h3>
|
|
<div class=\"tab-content\">
|
|
|
|
";
|
|
// line 317
|
|
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.', 317, $this->source); })()), "managers", [], "any", false, false, false, 317)) {
|
|
// line 318
|
|
echo " <div class=\"empty\">
|
|
<p>There are no configured entity managers.</p>
|
|
</div>
|
|
";
|
|
} else {
|
|
// line 322
|
|
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.', 322, $this->source); })()), "managers", [], "any", false, false, false, 322)], 322, $context, $this->getSourceContext());
|
|
echo "
|
|
";
|
|
}
|
|
// line 324
|
|
echo " </div>
|
|
</div>
|
|
|
|
<div class=\"tab ";
|
|
// line 327
|
|
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.', 327, $this->source); })()), "cacheEnabled", [], "any", false, false, false, 327)) ? ("disabled") : (""));
|
|
echo "\">
|
|
<h3 class=\"tab-title\">Second Level Cache</h3>
|
|
<div class=\"tab-content\">
|
|
|
|
";
|
|
// line 331
|
|
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.', 331, $this->source); })()), "cacheEnabled", [], "any", false, false, false, 331)) {
|
|
// line 332
|
|
echo " <div class=\"empty\">
|
|
<p>Second Level Cache is not enabled.</p>
|
|
</div>
|
|
";
|
|
} else {
|
|
// line 336
|
|
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.', 336, $this->source); })()), "cacheCounts", [], "any", false, false, false, 336)) {
|
|
// line 337
|
|
echo " <div class=\"empty\">
|
|
<p>Second level cache information is not available.</p>
|
|
</div>
|
|
";
|
|
} else {
|
|
// line 341
|
|
echo " <div class=\"metrics\">
|
|
<div class=\"metric\">
|
|
<span class=\"value\">";
|
|
// line 343
|
|
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.', 343, $this->source); })()), "cacheCounts", [], "any", false, false, false, 343), "hits", [], "any", false, false, false, 343), "html", null, true);
|
|
echo "</span>
|
|
<span class=\"label\">Hits</span>
|
|
</div>
|
|
|
|
<div class=\"metric\">
|
|
<span class=\"value\">";
|
|
// line 348
|
|
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.', 348, $this->source); })()), "cacheCounts", [], "any", false, false, false, 348), "misses", [], "any", false, false, false, 348), "html", null, true);
|
|
echo "</span>
|
|
<span class=\"label\">Misses</span>
|
|
</div>
|
|
|
|
<div class=\"metric\">
|
|
<span class=\"value\">";
|
|
// line 353
|
|
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.', 353, $this->source); })()), "cacheCounts", [], "any", false, false, false, 353), "puts", [], "any", false, false, false, 353), "html", null, true);
|
|
echo "</span>
|
|
<span class=\"label\">Puts</span>
|
|
</div>
|
|
</div>
|
|
|
|
";
|
|
// line 358
|
|
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.', 358, $this->source); })()), "cacheRegions", [], "any", false, false, false, 358), "hits", [], "any", false, false, false, 358)) {
|
|
// line 359
|
|
echo " <h3>Number of cache hits</h3>
|
|
";
|
|
// line 360
|
|
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.', 360, $this->source); })()), "cacheRegions", [], "any", false, false, false, 360), "hits", [], "any", false, false, false, 360)], 360, $context, $this->getSourceContext());
|
|
echo "
|
|
";
|
|
}
|
|
// line 362
|
|
echo "
|
|
";
|
|
// line 363
|
|
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.', 363, $this->source); })()), "cacheRegions", [], "any", false, false, false, 363), "misses", [], "any", false, false, false, 363)) {
|
|
// line 364
|
|
echo " <h3>Number of cache misses</h3>
|
|
";
|
|
// line 365
|
|
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.', 365, $this->source); })()), "cacheRegions", [], "any", false, false, false, 365), "misses", [], "any", false, false, false, 365)], 365, $context, $this->getSourceContext());
|
|
echo "
|
|
";
|
|
}
|
|
// line 367
|
|
echo "
|
|
";
|
|
// line 368
|
|
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.', 368, $this->source); })()), "cacheRegions", [], "any", false, false, false, 368), "puts", [], "any", false, false, false, 368)) {
|
|
// line 369
|
|
echo " <h3>Number of cache puts</h3>
|
|
";
|
|
// line 370
|
|
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.', 370, $this->source); })()), "cacheRegions", [], "any", false, false, false, 370), "puts", [], "any", false, false, false, 370)], 370, $context, $this->getSourceContext());
|
|
echo "
|
|
";
|
|
}
|
|
// line 372
|
|
echo " ";
|
|
}
|
|
// line 373
|
|
echo " ";
|
|
}
|
|
// line 374
|
|
echo " </div>
|
|
</div>
|
|
|
|
<div class=\"tab ";
|
|
// line 377
|
|
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.', 377, $this->source); })()), "entities", [], "any", false, false, false, 377)) ? ("disabled") : (""));
|
|
echo "\">
|
|
<h3 class=\"tab-title\">Entities Mapping</h3>
|
|
<div class=\"tab-content\">
|
|
|
|
";
|
|
// line 381
|
|
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.', 381, $this->source); })()), "entities", [], "any", false, false, false, 381)) {
|
|
// line 382
|
|
echo " <div class=\"empty\">
|
|
<p>No mapped entities.</p>
|
|
</div>
|
|
";
|
|
} else {
|
|
// line 386
|
|
echo " ";
|
|
$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.', 386, $this->source); })()), "entities", [], "any", false, false, false, 386));
|
|
foreach ($context['_seq'] as $context["manager"] => $context["classes"]) {
|
|
// line 387
|
|
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.', 387, $this->source); })()), "managers", [], "any", false, false, false, 387)) > 1)) {
|
|
// line 388
|
|
echo " <h3>";
|
|
echo twig_escape_filter($this->env, $context["manager"], "html", null, true);
|
|
echo " <small>entity manager</small></h3>
|
|
";
|
|
}
|
|
// line 390
|
|
echo "
|
|
";
|
|
// line 391
|
|
if (twig_test_empty($context["classes"])) {
|
|
// line 392
|
|
echo " <div class=\"empty\">
|
|
<p>No loaded entities.</p>
|
|
</div>
|
|
";
|
|
} else {
|
|
// line 396
|
|
echo " <table>
|
|
<thead>
|
|
<tr>
|
|
<th scope=\"col\">Class</th>
|
|
<th scope=\"col\">Mapping errors</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
";
|
|
// line 404
|
|
$context['_parent'] = $context;
|
|
$context['_seq'] = twig_ensure_traversable($context["classes"]);
|
|
foreach ($context['_seq'] as $context["_key"] => $context["class"]) {
|
|
// line 405
|
|
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, 405), $context["manager"], [], "array", true, true, false, 405) && 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, 405), $context["manager"], [], "array", false, true, false, 405), twig_get_attribute($this->env, $this->source, $context["class"], "class", [], "any", false, false, false, 405), [], "array", true, true, false, 405));
|
|
// line 406
|
|
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.', 406, $this->source); })())) ? ("status-error") : (""));
|
|
echo "\">
|
|
<td>
|
|
<a href=\"";
|
|
// line 408
|
|
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\CodeExtension']->getFileLink(twig_get_attribute($this->env, $this->source, $context["class"], "file", [], "any", false, false, false, 408), twig_get_attribute($this->env, $this->source, $context["class"], "line", [], "any", false, false, false, 408)), "html", null, true);
|
|
echo "\">";
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["class"], "class", [], "any", false, false, false, 408), "html", null, true);
|
|
echo "</a>
|
|
</td>
|
|
<td class=\"font-normal\">
|
|
";
|
|
// line 411
|
|
if ((isset($context["contains_errors"]) || array_key_exists("contains_errors", $context) ? $context["contains_errors"] : (function () { throw new RuntimeError('Variable "contains_errors" does not exist.', 411, $this->source); })())) {
|
|
// line 412
|
|
echo " <ul>
|
|
";
|
|
// line 413
|
|
$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.', 413, $this->source); })()), "mappingErrors", [], "any", false, false, false, 413), $context["manager"], [], "array", false, false, false, 413), twig_get_attribute($this->env, $this->source, $context["class"], "class", [], "any", false, false, false, 413), [], "array", false, false, false, 413));
|
|
foreach ($context['_seq'] as $context["_key"] => $context["error"]) {
|
|
// line 414
|
|
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 416
|
|
echo " </ul>
|
|
";
|
|
} else {
|
|
// line 418
|
|
echo " No errors.
|
|
";
|
|
}
|
|
// line 420
|
|
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 423
|
|
echo " </tbody>
|
|
</table>
|
|
";
|
|
}
|
|
// line 426
|
|
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 427
|
|
echo " ";
|
|
}
|
|
// line 428
|
|
echo " </div>
|
|
</div>
|
|
</div>
|
|
|
|
<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_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
|
|
|
|
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
|
|
|
|
}
|
|
|
|
// line 501
|
|
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_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "macro", "render_simple_table"));
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "macro", "render_simple_table"));
|
|
|
|
// line 502
|
|
echo " <table>
|
|
<thead>
|
|
<tr>
|
|
<th scope=\"col\" class=\"key\">";
|
|
// line 505
|
|
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.', 505, $this->source); })()), "html", null, true);
|
|
echo "</th>
|
|
<th scope=\"col\">";
|
|
// line 506
|
|
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.', 506, $this->source); })()), "html", null, true);
|
|
echo "</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
";
|
|
// line 510
|
|
$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.', 510, $this->source); })()));
|
|
foreach ($context['_seq'] as $context["key"] => $context["value"]) {
|
|
// line 511
|
|
echo " <tr>
|
|
<th scope=\"row\">";
|
|
// line 512
|
|
echo twig_escape_filter($this->env, $context["key"], "html", null, true);
|
|
echo "</th>
|
|
<td>";
|
|
// line 513
|
|
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 516
|
|
echo " </tbody>
|
|
</table>
|
|
";
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
|
|
|
|
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_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 ( 1255 => 516, 1246 => 513, 1242 => 512, 1239 => 511, 1235 => 510, 1228 => 506, 1224 => 505, 1219 => 502, 1198 => 501, 1117 => 428, 1114 => 427, 1108 => 426, 1103 => 423, 1095 => 420, 1091 => 418, 1087 => 416, 1078 => 414, 1074 => 413, 1071 => 412, 1069 => 411, 1061 => 408, 1055 => 406, 1052 => 405, 1048 => 404, 1038 => 396, 1032 => 392, 1030 => 391, 1027 => 390, 1021 => 388, 1018 => 387, 1013 => 386, 1007 => 382, 1005 => 381, 998 => 377, 993 => 374, 990 => 373, 987 => 372, 982 => 370, 979 => 369, 977 => 368, 974 => 367, 969 => 365, 966 => 364, 964 => 363, 961 => 362, 956 => 360, 953 => 359, 951 => 358, 943 => 353, 935 => 348, 927 => 343, 923 => 341, 917 => 337, 914 => 336, 908 => 332, 906 => 331, 899 => 327, 894 => 324, 888 => 322, 882 => 318, 880 => 317, 873 => 313, 868 => 310, 862 => 308, 856 => 304, 854 => 303, 848 => 300, 843 => 297, 840 => 296, 826 => 295, 821 => 292, 805 => 289, 799 => 285, 779 => 280, 775 => 278, 773 => 277, 768 => 276, 766 => 275, 760 => 273, 757 => 272, 755 => 271, 749 => 268, 746 => 267, 729 => 266, 714 => 257, 712 => 256, 709 => 255, 701 => 253, 699 => 252, 696 => 251, 690 => 248, 685 => 247, 683 => 246, 676 => 245, 674 => 244, 668 => 241, 664 => 240, 658 => 239, 654 => 237, 647 => 235, 644 => 234, 642 => 233, 639 => 232, 630 => 230, 627 => 229, 625 => 228, 622 => 227, 615 => 225, 612 => 224, 610 => 223, 603 => 221, 596 => 217, 590 => 214, 587 => 213, 582 => 211, 577 => 210, 572 => 208, 565 => 206, 561 => 205, 558 => 204, 556 => 203, 549 => 202, 546 => 201, 529 => 200, 525 => 199, 520 => 196, 515 => 194, 510 => 193, 505 => 191, 500 => 190, 498 => 189, 493 => 186, 490 => 185, 487 => 184, 484 => 183, 478 => 179, 476 => 178, 473 => 177, 467 => 175, 464 => 174, 447 => 173, 444 => 172, 438 => 170, 432 => 168, 429 => 167, 423 => 163, 421 => 162, 416 => 159, 412 => 157, 408 => 155, 406 => 154, 403 => 153, 401 => 152, 397 => 151, 392 => 148, 384 => 143, 377 => 139, 370 => 135, 366 => 133, 364 => 132, 356 => 127, 348 => 122, 340 => 117, 332 => 112, 317 => 99, 307 => 98, 293 => 94, 289 => 92, 287 => 91, 286 => 90, 285 => 88, 283 => 87, 280 => 86, 270 => 85, 259 => 82, 253 => 79, 250 => 78, 248 => 77, 243 => 75, 236 => 74, 226 => 73, 212 => 68, 209 => 67, 206 => 66, 199 => 61, 191 => 58, 182 => 54, 175 => 50, 171 => 48, 169 => 47, 162 => 45, 155 => 41, 148 => 37, 139 => 33, 135 => 31, 133 => 30, 130 => 29, 127 => 28, 120 => 24, 113 => 21, 106 => 18, 104 => 17, 101 => 16, 95 => 14, 89 => 12, 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' %}
|
|
|
|
{% if profiler_markup_version >= 3 %}
|
|
{{ include('@Doctrine/Collector/database.svg') }}
|
|
{% else %}
|
|
<span class=\"icon\">{{ include('@Doctrine/Collector/icon.svg') }}</span>
|
|
{% endif %}
|
|
|
|
{% 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/' ~ (profiler_markup_version < 3 ? 'icon' : 'database') ~ '.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-group\">
|
|
<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>
|
|
</div>
|
|
|
|
{% if collector.cacheEnabled %}
|
|
<div class=\"metric-group\">
|
|
<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>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class=\"sf-tabs\" style=\"margin-top: 20px;\">
|
|
<div class=\"tab {{ collector.queries is empty ? 'disabled' }}\">
|
|
{% set group_queries = request.query.getBoolean('group') %}
|
|
<h3 class=\"tab-title\">
|
|
{% if group_queries %}
|
|
Grouped Statements
|
|
{% else %}
|
|
Queries
|
|
{% endif %}
|
|
</h3>
|
|
|
|
<div class=\"tab-content\">
|
|
{% if not collector.queries %}
|
|
<div class=\"empty\">
|
|
<p>No executed queries.</p>
|
|
</div>
|
|
{% else %}
|
|
{% if group_queries %}
|
|
<p><a href=\"{{ path('_profiler', { panel: 'db', token: token }) }}\">Show all queries</a></p>
|
|
{% else %}
|
|
<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 %}
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<div class=\"tab {{ collector.connections is empty ? 'disabled' }}\">
|
|
<h3 class=\"tab-title\">Database Connections</h3>
|
|
<div class=\"tab-content\">
|
|
{% 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 %}
|
|
</div>
|
|
</div>
|
|
|
|
<div class=\"tab {{ collector.managers is empty ? 'disabled' }}\">
|
|
<h3 class=\"tab-title\">Entity Managers</h3>
|
|
<div class=\"tab-content\">
|
|
|
|
{% 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 %}
|
|
</div>
|
|
</div>
|
|
|
|
<div class=\"tab {{ not collector.cacheEnabled ? 'disabled' }}\">
|
|
<h3 class=\"tab-title\">Second Level Cache</h3>
|
|
<div class=\"tab-content\">
|
|
|
|
{% 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 %}
|
|
</div>
|
|
</div>
|
|
|
|
<div class=\"tab {{ not collector.entities ? 'disabled' }}\">
|
|
<h3 class=\"tab-title\">Entities Mapping</h3>
|
|
<div class=\"tab-content\">
|
|
|
|
{% if not collector.entities %}
|
|
<div class=\"empty\">
|
|
<p>No mapped entities.</p>
|
|
</div>
|
|
{% else %}
|
|
{% 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.class] is defined %}
|
|
<tr class=\"{{ contains_errors ? 'status-error' }}\">
|
|
<td>
|
|
<a href=\"{{ class.file|file_link(class.line) }}\">{{ class. class}}</a>
|
|
</td>
|
|
<td class=\"font-normal\">
|
|
{% if contains_errors %}
|
|
<ul>
|
|
{% for error in collector.mappingErrors[manager][class.class] %}
|
|
<li>{{ error }}</li>
|
|
{% endfor %}
|
|
</ul>
|
|
{% else %}
|
|
No errors.
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<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/poule/encrypted/stockage-syncable/www/development/html/caisse/vendor/doctrine/doctrine-bundle/Resources/views/Collector/db.html.twig");
|
|
}
|
|
}
|