Маленькие хитрости. Отладка кода.

вт, 13.04.2010 16:47 :: olk
Для пишущей (и начинающей писать) братии под Друпал расскажу о маленькой хитрости, которую я использую для отладки кода при написании модулей и функций темизации. Вообще-то это известный «велосипед», но может кому нибудь из начинающих поможет. Я не люблю использовать модуль devel из за его тяжести, поэтому использую простенькую функцию помещенную мной в файл settings.php

Функция:

  1. /**
  2.  * @param
  3.  *      $msg - то что хотим показать, переменная , массив, объект
  4.  *      $title - опционально, метка
  5.  *      $pre   - обрамлять тэшгами <pre> - полезно для показа массивов и объектов
  6.  *      $out   - если TRUE, выводить через drupal_set_message, иначе вернуть информацию
  7.  */
  8.  
  9. function dbg($msg, $title = '', $pre = TRUE, $out = TRUE) {
  10. global $user;
  11. // выводим только для админа, в принципе можете изменить uid на другой,
  12. // что бы выводилось под вашим экаунтом;
  13.  if ($user->uid == 1) {
  14.    if ($out) {
  15.      $info = print_r($msg,1);
  16.      if ($pre) {
  17.        $info = '<pre>' . $info . '</pre>';
  18.      }
  19.      if (!empty($title)){
  20.        $info = '<strong>' . $title . '</strong><br/>' . $info;
  21.      }
  22.    }
  23.    if ($out) {
  24.      drupal_set_message($info);  
  25.    }
  26.    else {
  27.    return $info;
  28.    }
  29.   }
  30. }

вот и все, теперь, чтобы посмотреть какую-либо информацию, достаточно в коде вставить нашу функцию.

  1.  dbg($value);

Комментарии

Еще один вариант

  1. function m() {
  2.         foreach (func_get_args() as $arg) {
  3.                
  4.                 $out = '<pre style="font-size:10px;background:#500;color:#FFE27D;font-family:\'Lucida Console\'">'.
  5.                                         check_plain(
  6.                                         str_replace( //укоротили форматирующие 4-пробельные отступы чтоб не сильно расползалось
  7.                                                 '  ',
  8.                                                 '    ',
  9.                                                 var_export($arg, TRUE)
  10.                                                 )
  11.                                         ).
  12.                                         '</pre><hr />';
  13.                 drupal_set_message($out, 'debug');
  14.                 }
  15. }
Добавить комментарий
« Добавить комментарий
» Добавить комментарий