file_scan_directory () yürütmek için yaklaşık 10 saniye sürer aynı sorun var . Sadece dpm(func_get_args())
öneriyi denedim ve ne yazık ki bana bir şey göstermiyor.
Tüm önbellekleri temizledim ve cron görevlerini gerçekleştirdim. Neyi kaçırıyorum?
Sahip olduğundan emin ol print $messages;
öğenizde page.tpl.php
template dosyası. Varsayılan olarak, devel (dpm) içeriğini sitenin mesaj alanına yazdıracak şekilde yapılandırılmıştır. Dolayısıyla, şablonunuz herhangi bir nedenden ötürü $messages
, hiçbir şey göremezsiniz.
krumo($variable)
çalışmadığında bazen dpm($variable)
işe yarayabilir.
print dpm($variable)
çalışmadığında bazen dpm($variable)
işe yarayabilir.
print $messages
hesabınızda page.tpl.php
olmadığında da çözüm olabilir. Belki geri ekleyebilirsiniz.Devel'e erişmek için doğru izinlerle Drupal sitesinde oturum açmanız gerekir. Yönetici olarak oturum açmalısınız.
Kesinlikle tavsiye ederim devel_debug_log . Devel modülünü gerektirir ve size ddl () işlevini verir. ddl, yapılandırmadaki raporlarınıza bir sayfa ekler, bu nedenle bekçi köpeğine yazdırmaya benzer, ancak hata ayıklama iletilerinizi gönderebileceğiniz ve mesajlarınızın sizden önce temizlenebileceği yarış türü koşullarından endişe etmediğiniz güzel ve temiz bir sayfanız var onları görme şansı - ya da sizin durumunuzda olduğu gibi tema sorunları.
(Tüm bu istekler size hiçbir zaman dpm () mesajı göstermeyeceğinden, bu, herhangi bir API oluşturmaya çalışıyorsanız son derece kullanışlı bir araçtır.)
Devel modülünü dpm()
olarak etkinleştirdiğinizden ve kurduğunuzdan emin olun. Bu modülde bildirilen bir işlevdir.
dpm()
burada adresinden alınan açıklama.
Drupal_set_message () öğesini kullanarak sayfanın ‘mesaj’ alanına bir değişken yazdırır. Sitenizi çalıştıran kod üzerinde çalışırken bir veya daha fazla değişkeni izlemek için bu işlevi kullanabilirsiniz. Devel modülü artık Krumo ile birlikte geldiğinden, çıktı kompakt ve göze batmaz.
dpm($input, $name = NULL)
Herhangi bir nedenle Krumo kullanmıyorsanız, farklı dpm () çağrılarını ayırt etmek için $ name parametresini kullanabilirsiniz.
Devel'i indirip etkinleştirdikten sonra file_scan_directory () dosyasının yürütülmesi yaklaşık 10 saniye sürer yanıtını tekrar deneyin ve çalışması gerekir.
Şablon dosyasına dokunmadan (veya sahip olmadan) bir işlevin içinden yazdırmak istiyorsanız, şunu deneyin:
$nid = 3;
$node = node_load($nid);
dpm($node);
print theme('status_messages');
Bu bazen sayfadaki 404 kaynağını döndüren bir kaynağın sonucudur.
Drupal 404 sayfasını işler ve böylece oturumdaki mesajları alır (ve temizler) ve görmediğiniz 404 sayfasına koyar. Daha sonra ana sayfa mesajları aldığında hiçbir şey kalmaz.
Ağ sekmesini açabilir ve herhangi bir kaynakta 404 durumunun olup olmadığını kontrol edebilirsiniz.
Burada kolay bir çözüm, ayarlarda bu satırı açarak hızlı 404'ü etkinleştirmektir. Php:
# drupal_fast_404();
Buradaki başka iyi bir çözüm de SlakeFistcrunch tarafından önerildiği gibi devel_debug_log kullanmaktır.
Bazen mesaj kesilebilir veya AJAX durumunda çalışmaz.
Daha güvenilir yöntem sadece yapmaktır (daha sonra bitirdikten sonra çıkarın):
var_dump($data); die();
Veya dd()
(Devel'in bir parçası), ör.
dd(func_get_args());
ardından günlük dosyanızı (geçici klasörde) kontrol edin, ör.
$ tail -f /tmp/drupal_debug.txt
Yukarıdaki yöntemi kullanmak daha kolay, daha hızlı ve geçerli site oluşturmayı bozmadan AJAX veya başka bir isteği destekleyebilir.
Hala dpm()
ürününü beğendiyseniz, kint()
işlevini de kullanmayı deneyin (değişkenlerin bu güzel yazdırılması için birlikte verilen Kint alt modülünü etkinleştirin).
Yalnızca bazı dpm()
çağrıları çalışmazsa, bunun nedeni dpm()
kilitlenmesidir. Aşağıdaki senaryoda özel form gönderme işleyicisinde olduğunu gördüm:
function mymodule_formid_submit($form, &$form_state) {
dpm($form_state);
}
Hata durumu dpm()
içinde bir istisna işleyici tarafından yakalandığına inanıyorum, çünkü sayfa gayet iyi, WSOD veya başka bir şey görüntülemiyordu, sadece dpm()
mesajı da yoktu. Devel Hata Ayıklama Günlüğü modülü tarafından oluşturulan raporda karşılık gelen nesneyi izlerken ddl($form_state)
kullanıldığında tarayıcı bellekte maksimum değer elde ettiğinden, hata büyük olasılıkla saptanamayan özyineleme.
Çözüm olarak, nesnenin dpm($form_state['values'])
veya dpm(array_keys($form_state))
gibi yalnızca (ilgili) bir bölümünü yazdırmayı deneyin.