У мене така ж проблема, як виконання файлу file_scan_directory () займає близько 10 секунд . Я просто спробував dpm(func_get_args())
пропозицію, і, на жаль, вона мені нічого не показує.
Я очистив усі кеші та запустив завдання cron. Що я пропускаю?
У мене така ж проблема, як виконання файлу file_scan_directory () займає близько 10 секунд . Я просто спробував dpm(func_get_args())
пропозицію, і, на жаль, вона мені нічого не показує.
Я очистив усі кеші та запустив завдання cron. Що я пропускаю?
Відповіді:
Переконайтеся , що у вас є print $messages;
у вашому page.tpl.php
файлі шаблону. За замовчуванням, роз (розпадів в хвилину) виконаний з можливістю друку вмісту він знаходиться в області повідомлень на сайті. Так що, якщо ваш шаблон за якою - то причини не надає вміст $messages
, ви нічого не побачите.
Ви повинні увійти на сайт Drupal з правильними дозволами на доступ до Devel. Увійдіть, як це повинен зробити адміністратор.
Я дуже рекомендую devel_debug_log . Для цього потрібен модуль devel, і він дає вам функцію ddl (). ddl додає сторінку до своїх звітів за конфігурацією, тому вона схожа на друк для сторожової собаки, але у вас є приємна чиста сторінка, на якій ви можете відправляти повідомлення про налагодження, і не турбуйтеся про умови перегонів, коли ваші повідомлення можуть бути очищені до того, як у вас з'явиться шанс їх побачити - або, як у вашому випадку, питання теми.
(Це також є надзвичайно корисним інструментом, якщо ви намагаєтеся будувати з будь-якої API, так як всі ці запити ніколи не покаже вам будь-якої розпадів за хвилину () повідомлень.)
Переконайтеся , що ви включили і встановили Devel модуль , як dpm()
це функція , оголошена в цьому модулі.
dpm()
опис, взятий звідси .
Друкує змінну в області 'повідомлення' сторінки за допомогою drupal_set_message (). Ви можете використовувати цю функцію для відстеження однієї або декількох змінних під час роботи над кодом, на якому працює ваш сайт. Оскільки модуль Devel тепер поставляється з Krumo, вихід компактний і ненав’язливий.
dpm($input, $name = NULL)
Якщо з якоїсь причини ви не використовуєте Krumo, ви можете використовувати параметр $ name, щоб розрізняти різні виклики до dpm ().
Після того, як ви завантажили і включений Devel, спробуйте відповідь від file_scan_directory () займає близько 10 секунд , щоб виконати ще раз , і він повинен працювати.
dpm(func_get_args());
?
dpm(func_get_args());
на die(print_r(func_get_args());
обхід Devel на даний момент.
Якщо ви хочете, щоб роздрукувати його зсередини функції, не торкаючись (або з) файл шаблону, спробуйте зробити наступне:
$nid = 3;
$node = node_load($nid);
dpm($node);
print theme('status_messages');
Іноді це є результатом ресурсу на сторінці, яка повертає 404.
Drupal виводить сторінку 404 і тим самим виймає (і очищає) повідомлення з сеансу та розміщує їх на 404 сторінці, яку ви не бачите. Потім, коли головна сторінка отримує повідомлення, є ні вліво.
Ви можете відкрити вкладку мережі і переконайтеся в тому, які ресурси є 404 статус.
Просте рішення тут для того, щоб швидко 404 Розкоментувати цю лінію в settings.php:
# drupal_fast_404();
Іншим хорошим рішенням тут є використання devel_debug_log як це було запропоновано SlakeFistcrunch.
Іноді повідомлення може бути вирізане або не спрацює у випадку AJAX.
Більш надійний спосіб, щоб зробити тільки (а потім видалити після фінішу):
var_dump($data); die();
Або ви можете використовувати dd()
(частина Devel, а), наприклад ,
dd(func_get_args());
потім перевірте свій файл журналу (у темп-папці), наприклад
$ tail -f /tmp/drupal_debug.txt
Використовуючи вище метод зручніше, швидше, і він може підтримувати AJAX або інший запит, не порушуючи поточну візуалізацію сайту.
Якщо ви до цих пір подобається dpm()
, спробуйте також з допомогою kint()
(включити додається Kint подмодуль для них досить друку змінних).
Якщо лише деякі dpm()
дзвінки не працюють, це може бути наслідком dpm()
збоїв. Я бачив, що це відбувається за наступним сценарієм у користувальницькій обробці форми подання:
function mymodule_formid_submit($form, &$form_state) {
dpm($form_state);
}
Я вважаю, що стан помилки сприйняв обробник винятків dpm()
, тому що на сторінці відображалось нормально, немає WSOD або чогось іншого, також немає жодного dpm()
повідомлення. Помилка, ймовірно, не виявлена рекурсія, тому що використання ddl($form_state)
натомість призвело до того, що браузер максимізував пам'ять під час перегляду відповідного об’єкта у звіті, створеному модулем журналу налагодження Devel.
Для вирішення спробуйте надрукувати лише (відповідну) частину об'єкта, як-от dpm($form_state['values'])
або dpm(array_keys($form_state))
.