it-swarm-id.com

Bagaimana Anda men-debug plugin?

Saya cukup baru dalam pembuatan plugin dan mengalami kesulitan men-debug.

Saya menggunakan banyak gema dan ceroboh dan jelek.

Saya yakin ada cara yang lebih baik untuk melakukan ini, mungkin sebuah IDE dengan debugger yang saya dapat menjalankan seluruh situs termasuk plugin?

47
Sruly

Pergilah ke wp-config.php dan ubah define('WP_DEBUG', false); menjadi define('WP_DEBUG', true);. Juga, instal Andrew Nacin Log Notified Notices plugin.

21
John P Bloch

Jika Anda mendapatkan kesalahan dalam mencetak, maka x-debug adalah ekstensi PHP yang brilian yang menambahkan backtraces modern ke PHP.

Jika Anda mencoba mencari tahu apa yang terjadi di mana tidak ada kesalahan, pendekatan favorit saya adalah mendefinisikan fungsi yang mencatat outputnya ke file. Jadi saya melakukan plog ($ variabel) dan itu muncul di file log yang kemudian bisa saya periksa. Ini sangat berguna ketika Anda mencoba mencari tahu apa yang terjadi sebelum header () dipanggil, atau situasi lain di mana Anda tidak dapat mencetak ke STDOUT.

12
tomdxw

Gunakan xdebug + NetBeans IDE. Ketika sepenuhnya dikonfigurasi - yang mudah dilakukan - Anda dapat mengatur titik istirahat di plugin Anda dan menonton variabel di titik istirahat. Saya pikir ini adalah cara terbaik untuk men-debug plugin atau aplikasi php dalam hal ini.

10
Raj

Saya men-debug cara lama, error_log()ing dan var_dumping. Saya menemukan bahwa ini adalah cara yang paling efisien bagi saya, saya memiliki beberapa fungsi pembungkus untuk menangani berbagai jenis data, karena array dan objek error_loging dapat menjadi masalah. Juga, menggunakan print_r() di dapat menjadi sulit untuk dibaca ketika tidak dalam <pre>. Saya memiliki tj_log() untuk logging kesalahan, dan tj() untuk menampilkan output (yang pada dasarnya menunjukkan semua tipe data dalam mannor yang rapi:

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 );

}

Jadi saya hanya melakukan: tj( $current_user ); atau apa pun.

6
Joe Hoyle

Saya menulis sedikit kelas untuk membuat file log, sangat berguna ketika Anda men-debug panggilan ajax.

http://github.com/hunk/Magic-Fields/blob/master/tools/debug.php

Anda hanya perlu melakukan sesuatu seperti:

Debug :: log ("Ini adalah pesan debug");

Ketika baris itu dieksekusi, sebuah pesan akan ditambahkan dalam file log dan setelah itu Anda dapat menggunakan perintah tail (jika Anda menggunakan sistem operasi gaya unix)

tail -f mylogfile.log

Jika Anda bisa meneruskan ke fungsi ini, array atau objek juga.

note Anda perlu mengubah baris 20 untuk jalur di mana Anda ingin menyimpan file log Anda

5
Gnuget

Setelah mengutak-atik sejumlah IDE, saya menetap di plain old Notepad ++ dengan skema warna Syntax Highlighting yang sangat disesuaikan.

Saya memiliki pengaturan makro sehingga ketika saya menekan Shift-Ctrl-X, kode berikut mendapatkan output di mana kursor saya:

echo "<pre>";
var_dump($);
echo "</pre>";
exit();

Ini sederhana, tetapi saya biasanya dapat memburu 90% bug saya dengan makro plus WP_DEBUG ini diaktifkan.

5
SethMerrick

Saya menggunakan Aptane IDE di Linux dan UltraEdit di Windows, dan yang ini juga memiliki parser PHP. Juga, saya melihat semua petunjuk dari xDebug dengan WP_DEBUG konstan yang didefinisikan dalam wp-config.php.

Lihat juga posting saya pada topik ini dan jangan ragu untuk berkomentar dan memberikan umpan balik tentang alat pengembangan Anda.

3
bueltge

Tidak terlalu buruk: Eclipse Ini dekat dengan PhpStorm + gratis.

2
kaiser

Saya sarankan memeriksa FirePHP . Anda dapat mengirim info debug ke Firebug Firefox melalui tajuk HTTP, yang biasanya menghasilkan output debug yang lebih bersih.

2
Annika Backstrom

Ada dua IDE yang bisa saya rekomendasikan dan saya telah menggunakan keduanya secara ekstensif: PhpED (hanya Windows) dan PhpStorm + XDEBUG (Mac, Windows dan Linux.) Saya di Mac sekarang jadi hanya dapat menggunakan yang terakhir.

Keduanya ROCK! Kabar baiknya bahwa PhpStorm adalah $ 49 sebelum September 2010 dan hanya $ 99 setelah itu. Jika saya menggunakan Windows dan harus memilih lagi, tidak yakin mana yang akan saya pilih.

Terus terang saya merasa bahwa pengembang plugin yang tidak menggunakan salah satu dari dua alat ini cacat parah, terutama jika mereka relatif baru dalam mengembangkan plugin WordPress.

1
MikeSchinkel

Krumo - kelas debug debug gaya

Hal lain yang benar-benar baik adalah kelas php "krumo". Ini diterapkan dalam ½ menit dan menawarkan cara mudah untuk men-debug semua jenis variabel:

  • benda,
  • array,
  • string/float/integer/dll.

Plus itu membantu dengan backtracing, menunjukkan kelas yang dimuat atau file yang disertakan dan semuanya sesuai permintaan.

Plus GRATIS!

Unduh

Krumo @sourceforge

1
kaiser

Pertama saya menambahkan define('WP_DEBUG', false); ke file wp-config.php (seperti yang dikatakan kebanyakan orang) pada instalasi lokal saya yang merupakan salinan terbaru dari situs produksi yang relevan (baik file dan data). Ini membuat hal-hal cepat, aman, terpisah tetapi mencerminkan setidaknya satu tempat plugin akan benar-benar digunakan.

Saya juga menambahkan Debug Bar plugin bersama dengan beberapa dari beberapa add-ons Bar Debug (Transien misalnya) - yang sesuai dengan plugin Anda.

Saya juga menggunakan Firebug add-on untuk Firefox yang sangat baik untuk membantu melacak html, css dan masalah JavaScript juga untuk melihat keanehan tata letak.

Saya menggunakan UltraEdit yang telah saya gunakan selama 15+ tahun untuk sejumlah besar pengkodean (php hingga SQL) baik di kantor maupun di rumah dan jadi ini berfungsi dengan baik untuk saya, tetapi mungkin tidak cukup untuk menilai saya sebagai IDE untuk banyak orang. Ini memiliki penyorotan sintaksis, penyelesaian otomatis dan fitur tata letak kode dan sekelompok alat pintas html dan css yang dapat membantu menghindari kesalahan ketik dan sama. Sebagian besar ini membawa keakraban bagi saya yang merupakan aspek penting yang sering diabaikan dalam Rush ke yang baru. Memori otot membantu pengulangan bahkan dalam pengkodean.

Dan tentu saja saya biasanya memiliki beberapa halaman yang sesuai dari codex terbuka di tab lain pada contoh yang cocok.

Ini semua membantu dalam berbagai cara untuk menyoroti kesalahan pengkodean, penguraian, fungsional, dan tata letak serta tidak banyak mengganggu cara kode saya atau jika tidak ada yang salah. Sebagian besar dapat diabaikan atau dinonaktifkan sebentar jika Anda bereksperimen atau mengerjakan sesuatu yang akan Anda kunjungi lagi nanti.

Oh, dan tidak ada yang salah dengan gema atau print_r yang diposisikan dengan baik untuk memeriksa sesuatu di tombol (selama Anda menghapusnya ketika Anda selesai).

0
Lunc

Lihat Monitor Kueri dikombinasikan dengan Perpanjangan Monitor Kueri untuk debugging WordPress yang komprehensif (kesalahan/pemberitahuan PHP/distrik/peringatan, kueri basis data, jalur, konstanta, permintaan HTTP, transien, variabel sesi, var dumps) .

Juga periksa Semua Posting Meta dan Menyimpan Apa plugin untuk info spesifik pada posting.

0
Caleb

PHPStorm dan Xdebug adalah gim yang mengubah saya untuk pengembangan WordPress. Sangat merekomendasikan sekarang. Khususnya dengan alat debug inline mereka.

0

Saya menggunakan phpED dan xdebug tetapi bagi saya (dan tampaknya untuk orang lain) tidak mungkin untuk men-debug plugin atau file tema! Debugger hanya berhenti pada breakpoint yang ada di file "inti" utama atau asli! Adakah yang bisa membantu saya?

0
Kreker