交响乐 2 Data_collector.time

Symfony 2 Data_collector.time

我正在尝试通过关联 route/url 获取我在 Symfony 2 中的页面的加载时间,我想将所有这些信息记录在我的数据库或文件中。

为此,我想使用 app_dev.php 调试工具栏,所有这些信息都写在其中,但我无法访问它们!我发现有 "DataCollector" 但没有其他东西可以抓住它......

在 Symfony/src/Symfony/bundle/frameworkBundle/ressources/config/collectors.xml 我找到了

<service id="data_collector.time" class="%data_collector.time.class%" public="false">
        <tag name="data_collector" template="@WebProfiler/Collector/time.html.twig" id="time" priority="255" />
        <argument type="service" id="kernel" on-invalid="ignore" />
    </service>

我可以使用这项服务进行平滑处理吗?

我找到了另一种方法:

$this->container->get('profiler')->get('time');

但我只有开始时间,没有加载时间!

有人可以帮我解决这个问题吗?非常感谢!

您可以用不同的方式解决这个问题。所需信息可以在前端控制器中轻松获取:

<?php

use Symfony\Component\ClassLoader\ApcClassLoader;
use Symfony\Component\HttpFoundation\Request;

$loader = require_once __DIR__.'/../app/bootstrap.php.cache';

require_once __DIR__.'/../app/AppKernel.php';

$start = microtime(true);

$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();

$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

$finish = microtime(true);
$elapsedTime = $finish - $start;
$uri = $request->getUri();
// ... insert the URI and the elapsed time in the database