html текст
All interests
  • All interests
  • Design
  • Food
  • Gadgets
  • Humor
  • News
  • Photo
  • Travel
  • Video
Click to see the next recommended page
Like it
Don't like
Add to Favorites

Модуль профайлинга «ProfilerToolbar»

Если вы используете Kohana, то скорее всего уже видели модуль DebugToolbar. Испробовав его на нескольких проектах, стало понятно, что его возможностей явно не хватает. А при использовании Ajax запросов данный модуль становиться вообще бесполезным.

Имея достаточно свободного времени и желание сделать удобный инструмент для разработки, я решил написать свой велосипед с блэкджеком и плюшками. В итоге получилась такая штуковина:

ProfilerToolbar


В данном модуле очень хотелось видеть не просто SQL запросы, а еще их EXPLAIN информацию.

ProfilerToolbar Tab: SQL Queries

Так же хотелось следить за работой с кешем.

ProfilerToolbar Tab: Cache

Видеть данные о текущем роуте и его параметрах.

ProfilerToolbar Tab: Route

Часто приходится просматривать сложные структуры данных используя var_dump(); и не портить код самой страницы.

ProfilerToolbar Tab: Your

Плюс к вышеперечисленному, выводятся глобальные переменные ($_GET,$_POST,$_SESSION и т.д.) и список поключаемых в проекте файлов, но там ничего интересного нет и дабы не засорять статью лишними скриншотами просто оставлю ссылку на страницу данного модуля.


Всё конечно хорошо, но как быть с Ajax запросами?

Для этого имеется вывод всё тех же данных в FireBug и выглядит это следующим образом.


Посмотреть развёрнутые группы


Установка модуля


Как и всегда, в файле bootstrap.php надо просто добавить строчку в список модулей с указанием каталога где он расположен. Но есть один ньюанс. Что бы получить дополнительную информацию о работе с кешем и о запросах к БД, мне пришлось переопределить их классы.
Поэтому, что бы использовались классы модуля, он должен располагаться перед строками Cache и Database.

Kohana::modules(array(
    ...
    'profilertoolbar' => MODPATH.'profilertoolbar',
    'cache'           => MODPATH.'cache',
    'database'        => MODPATH.'database',
    ...
  ));


Как пользоваться


Вывод панели на страницу

Что бы вывести панель, надо в шаблоне нужной вам страницы написать: ProfilerToolbar::render(true);
Я это делаю в основном шаблоне который выводится везде.

<html>
<body>
  ...
  content
  ...
  <?php ProfilerToolbar::render(true); ?>
</body>
</html>

Вывод данных в FireBug

После подключения модуля, данные в FireBug будут выводиться автоматически во всех методах любых контроллеров. Если вас это не устраевает и требуется просматривать данные только в определённых местах, то делаем следующим образом:
1. Отключам в конфиге параметр showEverywhere

  ...
  // firebug data settings
  'firebug'=>array(
    'enabled'         => true, // if set FALSE, panel don't ...
    'showEverywhere'  => FALSE, // if set TRUE you don't need ...
  ...


2. В нужном методе пишем ProfilerToolbar::firebug();
Или в контроллере который отвечает за Ajax:

  class Controller_Ajax extends Controller {
     public function after(){
      ...
      ProfilerToolbar::firebug();
      parent::after();
    }
    ...
  }


Добавление своих данных

Если вам нужно просмотреть дамп какой-то переменной, то выводить её следует так:
  ProfilerToolbar::addData('first tab','test string');
  ProfilerToolbar::addData('first tab',rand(1, 1000)/ rand(1, 1000));
  ProfilerToolbar::addData('first tab',$user);
  ProfilerToolbar::addData('first tab',$this->request->headers());
  ProfilerToolbar::addData('second tab','other data');

Получим результат как на данном скриншоте.

Конфиг


Что бы не приводить сюда листинг, можете посмотреть тут.
В нём можно отключить как вывод самой панели так и вывод данных в FireBug, ну и всех параметров в отдельности.
Например, изредка требуется посмотреть какие файлы подключаются в процессе выполнения скрипта, но как правило это не нужно и можно отключить параметр showIncFiles что значительно сократит генерируемый html код.

Не забудьте в конфиге database включить profiling, в противном случае запросы отображаться не будут.

Развитие


Если модуль будет востребован, то заморочусь оформлением кода по стилю Kohana и штатным userguide.
По функционалу планирую сделать отображение логов и надеюсь вы подкинете новых идей :)

Заключение


Страница модуля и демо: alertdevelop.ru/projects/profilertoolbar
Проект на гитхабе: github.com/Alert/profilertoolbar

p.s. На демо странице отображается только панель со статической информацией без инфы в FireBug.

Жду жёсткой критики :)
Читать дальше
Twitter
Одноклассники
Мой Мир

материал с habrahabr.ru

1

      Add

      You can create thematic collections and keep, for instance, all recipes in one place so you will never lose them.

      No images found
      Previous Next 0 / 0
      500
      • Advertisement
      • Animals
      • Architecture
      • Art
      • Auto
      • Aviation
      • Books
      • Cartoons
      • Celebrities
      • Children
      • Culture
      • Design
      • Economics
      • Education
      • Entertainment
      • Fashion
      • Fitness
      • Food
      • Gadgets
      • Games
      • Health
      • History
      • Hobby
      • Humor
      • Interior
      • Moto
      • Movies
      • Music
      • Nature
      • News
      • Photo
      • Pictures
      • Politics
      • Psychology
      • Science
      • Society
      • Sport
      • Technology
      • Travel
      • Video
      • Weapons
      • Web
      • Work
        Submit
        Valid formats are JPG, PNG, GIF.
        Not more than 5 Мb, please.
        30
        surfingbird.ru/site/
        RSS format guidelines
        500
        • Advertisement
        • Animals
        • Architecture
        • Art
        • Auto
        • Aviation
        • Books
        • Cartoons
        • Celebrities
        • Children
        • Culture
        • Design
        • Economics
        • Education
        • Entertainment
        • Fashion
        • Fitness
        • Food
        • Gadgets
        • Games
        • Health
        • History
        • Hobby
        • Humor
        • Interior
        • Moto
        • Movies
        • Music
        • Nature
        • News
        • Photo
        • Pictures
        • Politics
        • Psychology
        • Science
        • Society
        • Sport
        • Technology
        • Travel
        • Video
        • Weapons
        • Web
        • Work

          Submit

          Thank you! Wait for moderation.

          Тебе это не нравится?

          You can block the domain, tag, user or channel, and we'll stop recommend it to you. You can always unblock them in your settings.

          • SLCH
          • домен habrahabr.ru

          Get a link

          Спасибо, твоя жалоба принята.

          Log on to Surfingbird

          Recover
          Sign up

          or

          Welcome to Surfingbird.com!

          You'll find thousands of interesting pages, photos, and videos inside.
          Join!

          • Personal
            recommendations

          • Stash
            interesting and useful stuff

          • Anywhere,
            anytime

          Do we already know you? Login or restore the password.

          Close

          Add to collection

             

            Facebook

            Ваш профиль на рассмотрении, обновите страницу через несколько секунд

            Facebook

            К сожалению, вы не попадаете под условия акции