Ich habe das gleiche Problem wie file_scan_directory () dauert ca. 10 Sekunden . Ich habe den dpm(func_get_args())
Vorschlag gerade ausprobiert und er zeigt mir leider nichts.
Ich habe alle Caches geleert und die Cron-Tasks ausgeführt. Was vermisse ich?
Antworten:
Stellen Sie sicher, dass Sie
print $messages;
in Ihrerpage.tpl.php
Vorlagendatei haben. Standardmäßig ist devel (dpm) so konfiguriert, dass der Inhalt im Nachrichtenbereich der Site gedruckt wird. Wenn Ihre Vorlage aus irgendeinem Grund nicht den Inhalt von rendert$messages
, werden Sie nichts sehen.quelle
Funktioniert manchmal
krumo($variable)
, wenndpm($variable)
nicht.Funktioniert manchmal
print dpm($variable)
, wenndpm($variable)
nicht.print $messages
in deinem gibtpage.tpl.php
. Vielleicht können Sie es wieder hinzufügen.quelle
Sie müssen auf der Drupal-Site angemeldet sein und über die richtigen Berechtigungen verfügen, um auf Devel zugreifen zu können. Melden Sie sich als Administrator an.
quelle
Ich würde devel_debug_log wärmstens empfehlen . Es erfordert das Entwicklungsmodul und gibt Ihnen die Funktion ddl (). ddl fügt Ihren Berichten in der Konfiguration eine Seite hinzu. Dies ähnelt dem Drucken im Watchdog-Modus. Sie haben jedoch eine schöne, saubere Seite, auf der Sie Ihre Debug-Nachrichten senden können eine Chance, sie zu sehen - oder, wie in Ihrem Fall, Themen.
(Dies ist auch ein EXTREM nützliches Tool, wenn Sie versuchen, irgendeine Art von API zu erstellen, da all diese Anfragen niemals irgendeine Art von dpm () - Nachrichten anzeigen würden.)
quelle
Stellen Sie sicher, dass Sie das Devel- Modul so aktiviert und installiert haben, wie
dpm()
es in diesem Modul als Funktion deklariert ist.dpm()
Beschreibung von genommen hier .Nachdem Sie Devel heruntergeladen und aktiviert haben, versuchen Sie die Antwort von dauert es ungefähr 10 Sekunden, bis file_scan_directory () erneut ausgeführt wird, und sie sollte funktionieren.
quelle
dpm(func_get_args());
?dpm(func_get_args());
,die(print_r(func_get_args());
Devel für den Moment zu umgehen.Wenn Sie es aus einer Funktion heraus drucken möchten, ohne eine Vorlagendatei zu berühren (oder zu haben), versuchen Sie Folgendes:
quelle
Dies ist manchmal das Ergebnis einer Ressource auf der Seite, die den Wert 404 zurückgibt.
Drupal rendert die 404-Seite und ruft dabei die Nachrichten aus der Sitzung ab (und löscht sie) und platziert sie auf der 404-Seite, die Sie nicht sehen. Wenn dann die Hauptseite die Nachrichten abruft, sind keine mehr übrig.
Sie können die Registerkarte Netzwerk öffnen und prüfen, ob Ressourcen den Status 404 haben.
Eine einfache Lösung ist, schnelles 404 zu aktivieren, indem Sie diese Zeile in settings.php auskommentieren:
Eine andere gute Lösung ist die Verwendung von devel_debug_log, wie von SlakeFistcrunch vorgeschlagen.
quelle
Manchmal kann die Nachricht abgeschnitten werden oder funktioniert bei AJAX nicht.
Eine zuverlässigere Methode ist, einfach Folgendes zu tun (und nach Abschluss zu entfernen):
Oder Sie können
dd()
(auch Teil von Devel) verwenden, zÜberprüfen Sie dann Ihre Protokolldatei (im temporären Ordner), z
Die Verwendung der oben genannten Methode ist bequemer, schneller und unterstützt möglicherweise AJAX oder andere Anforderungen, ohne das aktuelle Site-Rendering zu beeinträchtigen.
Wenn Sie immer noch mögen
dpm()
, versuchen Sie es auch mitkint()
(aktivieren Sie das mitgelieferte Kint-Modul für diesen hübschen Ausdruck von Variablen).quelle
Wenn nur einige
dpm()
Anrufe nicht funktionieren, kann dies an einemdpm()
Absturz liegen. Ich habe es in einem benutzerdefinierten Formular-Submit-Handler im folgenden Szenario gesehen:Ich glaube, die Fehlerbedingung wurde von einem Ausnahmebehandler in abgefangen
dpm()
, weil die Seite gut angezeigt wurde, kein WSOD oder so, nur keinedpm()
Meldung. Der Fehler ist wahrscheinlich eine unentdeckte Rekursion, da die Verwendung desddl($form_state)
Browsers zu einer maximalen Speicherauslastung führte, wenn das entsprechende Objekt in dem vom Devel Debug Log-Modul generierten Bericht angezeigt wurde.Versuchen Sie zur Umgehung dieses Problems, nur einen (relevanten) Teil des Objekts wie
dpm($form_state['values'])
oder zu druckendpm(array_keys($form_state))
.quelle