2014-01-28 3 views
1

Мне нужно получить время выполнения приложения symfony2 в ветке или контроллере и сохранить его в базе данных mysql. Как я могу это сделать? Он доступен в панели инструментов веб-профилировщика, но я не знаю, как получить к нему доступ.Как получить время выполнения приложения Symfony2?

+0

ли вам это нужно в '' dev' и prod' средах? Поскольку панель инструментов присутствует только в среде 'dev', вам придется найти другой способ. –

+1

Мне это нужно в среде prod. Я думаю, что это возможно, потому что, если я создаю регистрационную форму, чтобы включить вход в систему, позже я могу с помощью шаблона шаблона twig войти в систему с пользователем app.user.username. – milic

+1

Создайте прослушиватель для событий kernel.request и kernel.terminate, сохраняя время запуска, а затем обновляя его с помощью времени окончания. – gremo

ответ

2

Если вы учета только в течение времени, контроллер принимает, вы можете использовать Секундомер компонент:

http://symfony.com/doc/current/components/stopwatch.html

use Symfony\Component\Stopwatch\Stopwatch; 

public function indexAction() 
{ 
    $stopwatch = new Stopwatch(); 
    // Start event named 'eventName' 
    $stopwatch->start('eventName'); 
    // ... some code goes here 
    $event = $stopwatch->stop('eventName'); 
    // get total duration (but see the docs for more info) 
    $timeTaken = $event->getDuration(); // Returns the event duration, including all periods 

    ... 

} 
Смежные вопросы