отладка

Используете ли вы при разработке отладчик?

Аватар пользователя vbard

Решил спросить вот.
Имеется в виду при работе с кодом, само собой.

0 Спасибо

[РЕШЕНО]Ребята, помогите отладить два куска кода

Аватар пользователя Boozenok

Ребят, помогите привести код к стандарту, получаю ошибку (Strict warning: Only variables should be passed by reference) в двух кусках кода:

                case 'user_login':
                        $form['#prefix'] = '<div class="login_form"><div class="head_title">'.t('Login:').'</div>';
                        $form['#suffix'] = '</div><div class="register_form"><div class="head_title">'.t('Registration:').'</div>'.drupal_render(drupal_get_form('user_register_form')).'</div>';
                        $links = _ajax_register_ajax_links(array('password'));
                        $form['submit']['#prefix'] = $links[0];
                        $form['actions']['submit']['#value'] = t('Sign in');
                break;

и вот здесь еще

        if(count(end($items)) < 6 && count(end($items)) != 0){
                $photo_end = str_replace('<span>', '<span class="end">', end(end($items)));
0 Спасибо

Список выполняющихся хуков

Аватар пользователя roman-yrv

Добрый день.

Скажите пожалуйста, можно ли каким-либо образом просматривать список выполнившихся в течение какого-то времени (или выполняющихся сейчас) хуков ?
Чтобы можно было просмотреть их названия, пути и т.д.

0 Спасибо

Создания своего кода [впечатления]

Аватар пользователя chel

Создание темы навеяно мыслью о собственном коде.
Читая код своих модулей и сравнивая с кодом системных модулей, не смог не заметить, что я умещаю в одной двух функциях весь алгоритм модуля (к примеру если он не маленький).
А вот читая код модулей друпала наоборот замечаю: в каждой функции по 2-5 строчек кода, и много маленьких функций объединяющих общий алгоритм работы модуля.

Решил попробовать разбивать код по функциям на более мелкие составные части. (а не писать весь код в "одной" функции)

И о чудо: (раньше после написания модуля, как правило с первого раза он не запускался, да да, приходилось смотреть почему то или иное не работает)
А теперь работаю по новому принципу замечаю, что код работает с первого раза, и даже дебагить не приходится.
А удобство маленьких функций позволяет многие из них тестировать чуть ли не автономно каждую 1-2 зависимые функции.

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

0 Спасибо

Отладка

Аватар пользователя Bochagov

Всем привет!

По данной теме поискал ответы на форуме, но так ничего толком и не нашёл, поэтому прошу направить в нужном направлении.

Разбираюсь с Drupal и пишу пробный модуль.

Установка модуля: файл module.install
Хочу сделать, чтобы при установки модуля, автоматически создавался новый пользователь.
Почитал книжку, статьи - алгоритм реализации ясен, начал писать код и ...

Вот тут и встал. Никакого отладочного механизма.
Я даже и не могу толком понять, запускается моя функция или нет.
Создал файл в папке с модулем - название_модуля.install
в нём объявил функцию

название_модуля_install(){}

Для начала хотелось бы вообще увидеть отклик это функции, т.е. использовать какой-нибудь отладчик

Поискал на форуме решения. Из того что нашёл:
1. drupal_set_message('Install function!');
никакой реакции...
2. watchdog() - пишет в логи. Но к сожалению документация по данной функции оставляет желать лучшего - вот она
И где расположен этот файл?

3. Написал свою функцию записи в лог. (тут оговорюсь, с php столкнулся лишь недавно)
тестировал на "не Drupal" сайте, т.е. просто запускал скрипт - всё работает. Скопировал функцию в файл module.install - никакой реакции. Что опять наводит на мысли, что drupal туда и не заходит, но сказать наверняка опять же нельзя... в общем я запутался... помогите!

Вот функция записи:

<?php
function my_print($string)
{    
    
$fp fopen('c:\\debug.txt''a');    
    
fwrite($fp,"\r\n");
    
fwrite($fp$string);
    
fclose($fp);
}
?>
0 Спасибо

Отладка модулей. NetBeans + Drupal

Аватар пользователя Tisar

Здравствуйте, подскажите пожалуйста как можно использовать NetBeans для отладки модулей? Как произвести отладку файлов не php, а файла модулей.
Запускал отладку всего Drupal с index.php, но во время отладки он проходит по огромному количеству функций Drupala, несколько раз пробовал таким образом добраться до кода модуля, но к сожалению всё заканчивалось потерей времени и непонятками когда происходила всё же обработка модуля.

0 Спасибо

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

Аватар пользователя olk

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

Функция

/**
 * @param
 *      $msg - то что хотим показать, переменная , массив, объект
 *      $title - опционально, метка
 *      $pre   - обрамлять тэшгами <pre> - полезно для показа массивов и объектов
 *      $out   - если TRUE, выводить через drupal_set_message, иначе вернуть информацию
 */

function dbg($msg, $title = '', $pre = TRUE, $out = TRUE) {
global $user;
// выводим только для админа, в принципе можете изменить uid на другой,
// что бы выводилось под вашим экаунтом;
 if ($user->uid == 1) {
   if ($out) {
     $info = print_r($msg,1);
     if ($pre) {
       $info = '<pre>' . $info . '</pre>';
     }
     if (!empty($title)){
       $info = '<strong>' . $title . '</strong><br/>' . $info;
     }
   }
   if ($out) {
     drupal_set_message($info);  
   }
   else {
   return $info;
   }
  }
}

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

 dbg($value);

Оригинал заметки тут

0 Спасибо

отладка Drupal

Аватар пользователя natbampo

Привет.
Поставил себе Drupal захотел посмотреть как что за чем в нем работает.
Открыл в php expert editor и запустил отладку. Тормозит отладка неимоверно, почти что виснет.
Может кто сталкивался, что настроить?

p.s. другие скрипты нормально дебажит.

0 Спасибо

про print_r

Аватар пользователя fairwind

Может, кто еще не знает (я вот недавно случайно узнал), что есть такая функция - dprint_r. Определена в модуле devel, и хороша тем, что читаемо выводит массивы и объекты. Отлично подходит для операций типа drupal_set_message(dprint_r($node,true));

0 Спасибо

Установка и настройка отладчика Xdebug

Аватар пользователя VladSavitsky

Отладчик XdebugДля отладки и трассировки кода нужно установить и настроить Xdebug.

Страница проекта: http://www.xdebug.org/

0 Спасибо

Как в друпал делать трассировку?

Аватар пользователя horizon17

Замучался совсем с этим друпалом!!!
Невозможно проследить что откуда вызывается!
Мой отладчик phpED не видит дальше index.
Как отлаживать drupal по нормальному?
Хочу расставить точки останова, и прослеживать весь код!

Ведь немогу же я в каждый файл понатыкать print_r()...

Поставил drupalforfirebug, он на обычном book выдает только
$form->fivestar_form_node_296
$form->search_block_form
и все, непонятно где вызовы функциий node и book ?

Существует возможность пройтись по всему коду, построчно?

0 Спасибо

Как вы ведете отладку?

Аватар пользователя kaaz

Как в друпал средствами API или другими способами вести отладку?
Например по ходу выполнения функции выводить отладочную информацию, либо на экран, либо в файл, либо еще в какой нибудь поток.
Скажем, есть функция, которая перенаправляет весь вывод в файл, такая существует в Drupal?

0 Спасибо

Firebug Lite 1.2

Аватар пользователя oblivion

Вышла новая lite-версия Firebug — лучшего отладчика CSS и ява-скриптов. Теперь можно и в Oper-у и в ИЕ подключать.

0 Спасибо

Перевод Project issue tracking: Проблемный модуль.

Аватар пользователя VladSavitsky

Модуль очень качественный и многое умеет делать хорошо. А именно он помогает модулю Project отслеживать ошибки/предложения и прочее при развитии проектов. Этот модуль используется на drupal.org, а это значит повышенные требования к качеству.
Мне он понадобился, когда я подумал, что проектом может быть не только модуль для друпала...
А вот перевода не нашёл - сделал полный перевод и вроде бы довольно качественный.

Страница модуля: Project issue tracking
Версия: 5.x-1.3
Перевод на drupal.org: http://drupal.org/node/221640

0 Спасибо

Модуль Comment, как запретить пользователям ОТВЕЧАТЬ на комменты

Аватар пользователя zuminho

Здравствуйте, прошу помощи в, наверное, необычном вопросе: нужно запретить в комментариях возможность отвечать всем пользователям, т.е. нужна структура упрощенная - Добавить комментарий, и все.. никаких возможностей отвечать и изменять, вероятно нужно изменить сам код модуля, буду признателен всем кто знает решение проблемы....

0 Спасибо

Модуль для отладки: генерации контента, регистрация пользователей и т.п.

Аватар пользователя Viacheslav

Взялся за освоение Drupal. По-моему где-то наблюдал модуль для разработчиков, который в целях отладки может создать виртуальных пользователей в системе, сгенерировать некоторый контент вида: «lorem ipsum dolor sit amet». Или мне всё это приснилось?

0 Спасибо