Модуль разработки и Крумо
Я очень люблю Крумо/Девел. Тем не менее, я уверен, что упускаю что-то очевидное, потому что, когда я использую dsm() и получаю свой массив или объект полностью расширяемым и потрясающим, иногда мне трудно понять, какой массив или объект это. Вверху просто написано ... (Object) stdClass
.
Есть ли где-нибудь, что оно включает имя объекта/массива, который вы исследуете? Как насчет вкладки "Разработка" узла?
4 answers
К сожалению, в соответствии с пунктом 4 здесь http://krumo.sourceforge.net / он не будет печатать имя переменной. Однако, как он упоминает, в нижней части вывода krumo он точно сообщит вам, откуда поступил вызов (имя файла и номер строки).
Распечатываемый объект или массив всегда является переменной внутри вашего вызова kpr (или dsm/dpm). ie kpr($user) не будет явно указывать, что он печатает переменную $user.
На вкладке разработка узла напечатанный объект - это сам объект узла: $vars['узел'] или $узел в зависимости от вашей настройки.
Иногда, если мне нужно различать различные элементы отладки, я буду использовать что-то вроде следующего:
kpr(array(
'node' => $node,
'comments' => $comments,
'links' => $links,
));
Или, если элементы отладки разделены в разных местах, просто:
kpr(array('user' => $user));
Снова, Поиск Крумо может помочь. Позвольте мне показать, как это работает. Например, мы хотим отладить два объекта:
$user = user_load(1);
sdpm($user); // user object
sdpm(menu_get_object()); // node object loaded with menu_get_object() function.
P.S. Известна ошибка с devel/php
текстовой областью: http://drupal.org/node/1696920 . Так что не используйте sdpm()
там.
Конфигурация > Параметры разработки
Затем посмотрите на обработчики ошибок, поскольку они могут быть отключены.