Как профилировать Doctrine в Zend Framework

Добрый день.

Я использую Doctrine в качестве ORM для своего проекта Zend Framework. Это первый раз, когда я использую его. Я следил за главами Доктрины ZendCasts, и у меня все работает, но мне нужно было выполнить некоторое профилирование;

Существует класс Doctrine_Connection_Profiler, который следует использовать для профилирования внутренних запросов модели Doctrine, но я безуспешно пытался его использовать. Я всегда получаю исключение «PDOException: вы не можете сериализовать или десериализовать экземпляры PDOStatement», когда я выполняю свои модульные тесты.

Вот пример:

$conn = Doctrine_Manager::connection($doctrineConfig['dsn'], $dbconfname);
...
if( APPLICATION_ENV != 'production'){
    $obj_doctrine_profiler = new Doctrine_Connection_Profiler();
    $conn->setListener($obj_doctrine_profiler);
}

Все мои модульные тесты работают, если я прокомментирую/удалю

$conn->setListener($obj_doctrine_profiler);

линия. Этот блок кода находится в моем классе Bootstrap.php; странно то, что веб-приложение прекрасно работает даже с упомянутой строкой кода.

Большое вам спасибо за вашу помощь.

Пожалуйста, извините меня, если мой английский не самый лучший.


person David Zapata    schedule 15.03.2010    source источник


Ответы (1)


Существует сторонний плагин и библиотека для Zend Framework, которые помогли мне решить эту проблему. Библиотека называется ZFDebug, и также есть адаптер Doctrine (который по умолчанию не входит в библиотеку ZFDebug). Полные инструкции находятся внутри пакета ZFDebug. Плагин Doctrine отображает все события, запросы и измеренное время, проведенное в материалах базы данных.

person David Zapata    schedule 22.03.2010