В Magento есть выстроенный “профайлер”(Profiler) который помогает делать отладку PHP-кода, отладку Magento кода.
Включить “профайлер” можно через админ панель System -> Configuration -> Developer
Вкладка Debug и ставим в значение “yes“.
Теперь можем зайти на сайт и посмотреть, внизу под “футером” будут сообщения “профайлера” Magento, сколько памяти использовано.
Но при отладке Magento, мало знать сколько памяти использовано 🙂
Расширим функциональность “профайлера” Magento
Откроем файл index.php,
найдем #Varien_Profiler::enable() и раскоментируем (уберем #)
Varien_Profiler::enable()
Снова откроем сайт на Magento, теперь в “профайлере” Magento больше информации. Можно посмотреть сколько времени (в секундах) требуется для обработки скриптов в Magento, теперь есть что анализировать.
Покажем в “профайлере” и SQL-запросы Magento к базе данных
Открываем файл app/code/core/Mage/Core/Model/Resource.php
Находим функцию getConnection(),
в коде функции находим приблизительно на 110 строке
$connection = $this->_newConnection((string)$connConfig->type, $connConfig);
И ниже вставим:
$connection->getProfiler()->setEnabled(true);
Должно получится примерно вот так:
$connection = $this->_newConnection((string)$connConfig->type, $connConfig); $connection->getProfiler()->setEnabled(true);
Теперь перезагрузим страницу сайта и увидим количество SQL-запросов Magento к базе данных, и сколько времени заняли SQL-запросы Magento.
Медленные SQL-запросы Magento к базе данных
Открываем файл lib/Varien/Profiler.php \Varien_Profiler::getSqlProfiler
находим функцию getSqlProfiler().
Изменим функцию, заменим код на следующий пример
Теперь в “профайлере” Magento будут показываться все SQL-запросов Magento к базе данных которые делает Magento при создании страницы.
Функциональность “профайлера” Magento улучшена 🙂
Обратите внимание, функции getConnection() и getSqlProfiler() в разных версиях Magento могут отличатся.
Примеры php-кода для Magento Commerce Community 1.6.
Отладку с “профайлером” Magento лучше делать только на “девелоперских” серверах или локально, чтобы избежать не корректной работы “живых” сайтов.
Взято с http://inchoo.net/ecommerce/magento/magento-debugging/extending-default-magento-profiler/