Mam taki sam problem, jak wykonanie file_scan_directory () zajmuje około 10 sekund . Właśnie wypróbowałem dpm(func_get_args())
sugestię i niestety nic mi nie pokazuje.
Wyczyściłem wszystkie pamięci podręczne i uruchomiłem zadania cron. czego mi brakuje?
Odpowiedzi:
Upewnij się, że masz
print $messages;
wpage.tpl.php
pliku szablonu. Domyślnie program devel (dpm) jest skonfigurowany do drukowania jego zawartości w obszarze komunikatów witryny. Więc jeśli szablon z jakiegoś powodu nie wyświetla zawartości$messages
, nic nie zobaczysz.źródło
Czasami
krumo($variable)
może działać, gdydpm($variable)
nie.Czasami
print dpm($variable)
może działać, gdydpm($variable)
nie.print $messages
w twojejpage.tpl.php
więcej. Może możesz to dodać z powrotem.źródło
Musisz być zalogowany na stronie Drupal, posiadając odpowiednie uprawnienia dostępu do Devel. Zaloguj się jako administrator.
źródło
Gorąco polecam devel_debug_log . Wymaga modułu devel i daje funkcję ddl (). ddl dodaje stronę do raportów w konfiguracji, więc jest to podobne do drukowania w trybie watchdog, ale masz ładną czystą stronę, na której możesz wysyłać wiadomości debugowania, i nie martw się o warunki rasowe, w których twoje wiadomości mogą zostać usunięte, zanim szansę ich zobaczenia - lub, jak w twoim przypadku, problemów z motywem.
(Jest to również niezwykle przydatne narzędzie, jeśli próbujesz zbudować dowolny interfejs API, ponieważ wszystkie te żądania nigdy nie pokazywałyby żadnych komunikatów dpm ()).
źródło
Upewnij się, że masz włączony i zainstalowany moduł Devel , tak jak
dpm()
funkcja zadeklarowana w tym module.dpm()
opis wzięty stąd .Po pobraniu i włączeniu Devel wypróbuj odpowiedź z file_scan_directory () zajmuje około 10 sekund, aby wykonać ponownie i powinno działać.
źródło
dpm(func_get_args());
?dpm(func_get_args());
nadie(print_r(func_get_args());
ominięcie Devela.Jeśli chcesz wydrukować go z wnętrza funkcji bez dotykania (lub posiadania) pliku szablonu, spróbuj tego:
źródło
Czasami jest to wynikiem zasobu na stronie zwracającego 404.
Drupal renderuje stronę 404 iw ten sposób pobiera (i usuwa) wiadomości z sesji i umieszcza je na stronie 404, której nie widzisz. Gdy strona główna pobiera wiadomości, nie ma już żadnych.
Możesz otworzyć kartę sieci i sprawdzić, czy jakieś zasoby mają status 404.
Łatwym rozwiązaniem jest tutaj włączenie szybkiego 404 poprzez odkomentowanie tej linii w settings.php:
Innym dobrym rozwiązaniem tutaj jest użycie devel_debug_log, jak sugeruje SlakeFistcrunch.
źródło
Czasami wiadomość może zostać wycięta lub nie działa w przypadku AJAX.
Bardziej niezawodną metodą jest wykonanie (następnie usunięcie po zakończeniu):
Lub możesz użyć
dd()
(również część Devel), npnastępnie sprawdź plik dziennika (w folderze temp), np
Zastosowanie powyższej metody jest wygodniejsze, szybsze i może obsługiwać AJAX lub inne żądania bez przerywania renderowania bieżącej witryny.
Jeśli nadal chcesz
dpm()
, spróbuj również użyćkint()
(włącz dołączony podmoduł Kint dla tych ładnych wydruków zmiennych).źródło
Jeśli tylko niektóre
dpm()
połączenia nie działają, może to być spowodowanedpm()
awarią. Widziałem, jak to się dzieje w następującym scenariuszu w niestandardowym module obsługi przesyłania formularza:Uważam, że warunek błędu został przechwycony przez procedurę obsługi wyjątku
dpm()
, ponieważ strona wyświetlała się dobrze, brak WSOD lub coś, po prostu brakdpm()
wiadomości. Błąd jest prawdopodobnie niewykrytą rekurencją, ponieważ używaddl($form_state)
zamiast tego spowodowało, że przeglądarka wyczerpała pamięć podczas oglądania odpowiedniego obiektu w raporcie wygenerowanym przez moduł Devel Debug Log.Aby obejść ten problem, spróbuj wydrukować tylko (odpowiednią) część obiektu, na przykład
dpm($form_state['values'])
lubdpm(array_keys($form_state))
.źródło