Eklenti yazma konusunda oldukça yeniyim ve hata ayıklama konusunda zorlanıyordum.
Çok yankı kullandım ve özensiz ve çirkin.
Bunu yapmanın daha iyi bir yolu olduğundan eminim, belki de eklentiyi dahil ederek tüm siteyi çalıştırabileceğim bir hata ayıklayıcı ile bir IDE?
Wp-config.php dosyasına girin ve define('WP_DEBUG', false);
öğesini define('WP_DEBUG', true);
olarak değiştirin. Ayrıca, Andrew Nacin'in Log Deprecated Notices plugin uygulamasını yükleyin.
Hatalar yazdırılıyorsa, x-debug, PHP'ye modern backtraces ekleyen mükemmel bir PHP uzantısıdır.
Hata olmadığı yerde neler olup bittiğini çözmeye çalışıyorsanız, en sevdiğim yaklaşım çıktılarını bir dosyaya kaydeden bir işlev tanımlamaktır. Bu yüzden plog ($ değişken) yapıyorum ve bu daha sonra inceleyebileceğim günlük dosyasında görünüyor. Bu, özellikle header () çağrılmadan önce olanları veya STDOUT'a yazdıramadığınız diğer durumları çözmeye çalıştığınızda kullanışlıdır.
xdebug + NetBeans IDE kullanın. Tamamen yapılandırıldığında - ki kolay olan - eklentinizdeki kesme noktalarını ayarlayabilir ve değişkenleri kesme noktalarında izleyebilirsiniz. Ben bu konuda eklentileri veya herhangi bir php uygulamalarında hata ayıklamak için en iyi yol olduğunu düşünüyorum.
Eski moda şekilde hata ayıklarım, error_log()
ing ve var_dump
ing. Bunun benim için en etkili yol olduğunu biliyorum, error_log
ing dizileri ve nesneler acı verici olabileceğinden, farklı türde verileri işlemek için birkaç sarmalayıcı işlevim var. Ayrıca, print_r()
işlevinin kullanılması, <pre>
dosyasında olmadığı zaman okumak zor olabilir. Hata kaydı için tj_log()
ve çıktıyı göstermek için tj()
var (temelde herhangi bir veri tipini önceden tanımlanabilir bir manorda gösterir:
function tj( $code ) {
?>
<style>
.tj_debug { Word-wrap: break-Word; white-space: pre; text-align: left; position: relative; background-color: rgba(0, 0, 0, 0.8); font-size: 11px; color: #a1a1a1; margin: 10px; padding: 10px; margin: 0 auto; width: 80%; overflow: auto; -moz-box-shadow:0 10px 40px rgba(0, 0, 0, 0.75); -webkit-box-shadow:0 10px 40px rgba(0, 0, 0, 0.75); -moz-border-radius: 5px; -webkit-border-radius: 5px; text-shadow: none; }
</style>
<br /><pre class="tj_debug">
<?php
if ( is_null( $code ) || is_string($code) || is_int( $code ) || is_bool($code) || is_float( $code ) ) :
var_dump( $code );
else :
print_r( $code );
endif;
echo '</pre><br />';
}
function tj_log( $code ) {
if ( is_null( $code ) || is_string($code) || is_int( $code ) || is_bool($code) || is_float( $code ) ) :
$code = var_export( $code, true );
else :
$code = print_r( $code, true );
endif;
error_log( $code );
}
O zaman ben sadece yapıyorum: tj( $current_user );
ya da her neyse.
Günlük dosyası yapmak için küçük bir sınıf yazdım, ajax çağrılarında hata ayıklama yaparken çok kullanışlıdır.
http://github.com/hunk/Magic-Fields/blob/master/tools/debug.php
Sadece şöyle bir şey yapman gerekiyor:
Hata ayıklama :: log ("Bu bir hata ayıklama mesajıdır");
Bu satır çalıştırıldığında, günlük dosyasına bir mesaj eklenir ve bundan sonra tail komutunu kullanabilirsiniz (eğer bazı unix'in stil işletim sistemini kullanıyorsanız)
kuyruk -f mylogfile.log
Bu işleve geçebilirseniz bir dizi veya bir nesneyi de.
note günlük dosyanızı kaydetmek istediğiniz bir yol için satır 20'yi değiştirmeniz gerekiyor
Çok sayıda IDE ile uğraştıktan sonra, ultra-özelleştirilmiş bir Sözdizimi Vurgulama renk şeması ile eski Notepad ++ 'a yerleştirdim.
Shift-Ctrl-X tuşlarına bastığımda imlecimin bulunduğu yerde aşağıdaki kod çıktı çıkacak şekilde ayarlanmış bir makro var:
echo "<pre>";
var_dump($);
echo "</pre>";
exit();
Çok basit, ancak böceklerimin% 90'ını bu makro artı WP_DEBUG etkinken yakalayabilirim.
Linux'ta Aptane IDE ve Windows'ta UltraEdit kullanıyorum ve bunun da bir PHP ayrıştırıcısı var. Ayrıca, xDebug'daki tüm ipuçlarını WP_DEBUG
içinde tanımlanmış wp-config.php
sabiti ile görüntülüyorum.
Ayrıca bu konudaki gönderime bakın ve geliştirme araçlarınız hakkında yorum yapmaktan ve yorum yapmaktan çekinmeyin.
O kadar da kötü değil: Eclipse PhpStorm + free'e yakın.
FirePHP 'yi kontrol etmenizi öneririm. Firefox'un Firebug'a HTTP üstbilgileri üzerinden, genellikle daha temiz hata ayıklama çıktısı veren hata ayıklama bilgilerini gönderebilirsiniz.
Tavsiye edebileceğim iki IDE var ve her ikisini de çok kullandım: PhpED (yalnızca Windows) ve PhpStorm + XDEBUG (Mac, Windows ve Linux.) Artık Mac kullanıyorum ikincisi.
İkisi de ROCK! PhpStorm’un Eylül 2010’dan önce 49 dolar, ondan sonra ise 99 dolar olduğu iyi bir haber. Windows'da olsaydım ve tekrar seçmek zorunda kalsaydım, hangisini seçeceğimi bilmiyorum.
Açıkçası yardım edemem ama bu iki araçtan birini kullanmayan herhangi bir eklenti geliştiricisinin özellikle WordPress eklentileri geliştirmek için nispeten yeniyse ciddi bir şekilde engellendiğini hissediyorum.
Gerçekten güzel bir şey "krumo" php sınıfıdır. Dakikada uygulanır ve her tür değişkende hata ayıklamak için kolay bir yol sunar:
Plus backtracing işlemine yardımcı olur, yüklü sınıfları veya içerdiği dosyaları ve talep edilen her şeyi gösterir.
Artı ÜCRETSİZDİR!
Krumo @sourceforge
WordPress'in kapsamlı hata ayıklaması için Query Monitor , Query Monitor Extend ile birleşti , var dökümleri).
Ayrıca yayınlarla ilgili özel bilgi için Tüm Mesajlar Meta ve Tasarrufu Olan eklentilerini de kontrol edin.
PHPStorm ve Xdebug, WordPress'in gelişimi için benim için değişen bir oyundur. Şimdi tavsiye ederim. Özellikle onların satır içi hata ayıklama araçları ile.
Ben phpED ve xdebug kullanıyorum ama benim için (ve başkası gibi görünüyor), eklentilerde veya tema dosyalarında hata ayıklamak mümkün değil! Hata ayıklayıcı, yalnızca ana veya orijinal "çekirdek" dosyalardaki kesme noktalarında durur! bana yardımcı olan var mı?