Apa yang bisa kami bantu hari ini? Show
Diubah pada: Wed, 3 Mar, 2021 at 1:08 AM Jika terjadi sebuah kesalahan, banyak aplikasi
web PHP yang hanya menampilkan halaman blank atau bagian tertentu halaman menjadi blank. Tidak ada pesan kesalahan berarti dari PHP. Ini karena setting-setting debugging PHP seperti display_errors atau error_reporting dimatikan dari dalam aplikasi. Alasannya karena keamanan. Ini sedikit menyulitkan debugging karena untuk menghidupkan setting-setting debugging PHP kini tidak bisa lagi hanya lewat php.ini karena setting ini dioverride (lewat fungsi ini_set()) dari dalam aplikasi. Karena itu
kita perlu tahu untuk tiap aplikasi bagaimana cara menghidupkan debugging. Catatan: setelah proses debugging dan masalah terselesaikan, jangan lupa matikan kembali setting-setting ini bila perlu. WHMCSBerlaku untuk WHMCS 4.x dan 5.x. Di configuration.php tambahkan baris: $display_errors = true;
MoodleBerlaku untuk Moodle 1.9.x (hingga 2.1.x?) Di config.php, tambahkan/set baris: $CFG->debug = 6143; $CFG->debugdisplay = 1;
PrestashopBerlaku untuk versi 1.4.x (dan 1.5.x?) Di config/config.inc.php komen baris: @ini_set('display_errors', 'off'); Baris berikut juga bisa diubah dari: define('_PS_DEBUG_SQL_', false); menjadi: define('_PS_DEBUG_SQL_', true); RoundCubeBerlaku untuk versi 0.2 s/d 0.6+. Di main.inc.php set debug_level menjadi 15 dan log_driver ke syslog (hanya berlaku untuk admin server/VPS) atau file (XXX: bagaimana cara setting path?). Hidupkan juga setting sql_debug bila perlu. Setelah itu lihat pesan kesalahan dari file log (atau dari syslog, bergantung setting log_driver Anda). Joomla 1.5Di file configuration.php var $debug = '0';
menjadi var $debug = '1';
Dan nantinya akan terlihat hasil debug di paling bawah website nya . Joomla 1.7Di file configuration.php public $debug = '0';
menjadi public $debug = '1';
Dan nantinya akan terlihat hasil debug di paling bawah website nya Apakah jawaban ini bermanfaat? Ya Tidak Maaf kami tidak bisa membantu. Bantu kami mengembangkan artikel ini dengan umpan balik Anda. Artikel Terkait
Indonesian (Bahasa Indonesia) translation by Andy Nur (you can also view the original English article) Agenda Kita
Apa Yang Akan Kamu Butuhkan
Apa itu Xdebug?Nah, secara teknis, Xdebug merupakan perpanjangan bagi PHP untuk membuat hidupmu lebih mudah saat melakukan debug kode-mu. Saat ini, kamu mungkin terbiasa melakukan debug kode-mu dengan berbagai solusi sederhana lainnya. Ini termasuk menggunakan
pernyataan Apa yang sering saya jumpai adalah sedikit fungsi helper, seperti contoh ini: function dump($value) { echo ‘<pre>'; var_dump($value); echo ‘</pre>'; }
Sebenarnya, saya biasa melakukan ini juga, untuk waktu yang sangat lama sebenarnya. Jadi apa yang salah dengan itu? Secara teknis, tidak ada yang salah dengan itu. Ia bekerja dan melakukan apa yang seharusnya dilakukan. Tapi bayangkan sejenak, saat aplikasimu berkembang, kamu mungkin terbiasa memercikkan kodemu ke mana saja dengan sedikit echos, var_dumps dan debugger kustom. Sekarang diberikan, ini tidak obstruktif selama alur kerja pengujianmu, tapi bagaimana jika kamu lupa membersihkan beberapa kode debug sebelum masuk ke produksi? Hal ini dapat menyebabkan beberapa masalah yang sangat menyeramkan, karena para debugger kecil tersebut bahkan mungkin menemukan jalan mereka ke dalam kontrol versi dan tinggal di sana untuk waktu yang lama. Pertanyaan selanjutnya adalah: bagaimana kamu melakukan debug dalam produksi? Sekali lagi, bayangkan kamu menjelajahi salah satu layanan web favoritmu dan tiba-tiba kamu mendapatkan daftar besar informasi debug yang disajikan kepadamu di layar. Sekarang tentu saja hal itu mungkin akan hilang setelah refresh browser berikutnya, tapi ini bukan pengalaman yang sangat bagus bagi pengguna website. Sekarang terakhir, apakah kamu pernah ingin bisa melangkah melalui kode-mu, baris demi baris, melihat expressions, dan bahkan masuk ke pemanggilan fungsi untuk melihat mengapa hal itu menghasilkan nilai kembalian yang salah? Nah, kamu pasti harus menggali dunia debugging profesional dengan Xdebug, karena bisa menyelesaikan semua masalah di atas. Mengkonfigurasi MAMPSaya tidak ingin terlalu jauh ke dalam proses download dan instalasi MAMP di Mac. Sebagai gantinya, saya akan berbagi denganmu bahwa saya menggunakan PHP 5.4.4 dan Port Apache standar (80) sepanjang pembacaan ini. Keputusan PertamamuSebuah catatan singkat sebelum kita mulai dengan membangun Xdebug kita sendiri melalui Homebrew: Jika kamu ingin mengambil rute yang paling mudah, MAMP sudah dilengkapi dengan Xdebug 2.2.0. Untuk mengaktifkannya, buka:
Dengan editor teks pilihanmu, menuju ke bagian paling bawah dan hapus tanda komentar pada baris terakhir dengan menghapus Dua baris terakhir dari file tersebut seharusnya dibaca seperti ini: [xdebug] zend_extension="/Applications/MAMP/bin/php/php5.4.4/lib/php/extensions/ no-debug-non-zts-20100525/xdebug.so" Sekarang jika kamu bertanya pada diri sendiri:
Dan jawaban saya untuk itu adalah, tidak pernah ada kesalahan untuk melihat melampaui bingkaimu dan mempelajari sesuatu yang baru. Terutama sebagai pengembang akhir-akhir ini, Mengabaikan barang terkait server akan selalu berguna di beberapa titik waktu. Dijanjikan. Instal Xcode dan Command Line ToolsAnda bisa mendapatkan Apple Xcode secara gratis dari Mac App Store. Setelah mendownloadnya, masuklah ke preferensi aplikasi, tekan tab "Downloads" dan pasang "Command Line Tool"' dari daftar. Instal HomebrewHomebrew adalah manajer paket kecil yang rapi untuk Mac OS X yang membuatmu meniadakan semua barang Apple. Untuk menginstal Homebrew, cukup paste perintah berikut ke terminalmu. ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)" Di Mac, Homebrew akan menjadi cara yang paling mudah untuk menginstal Xdebug. Di Linux, mengkompilasi sendiri adalah cara terbaik untuk pergi; yang tidak semudah itu di Mac. Petunjuk: Pengguna Windows hanya perlu mendownload file Sebagai pengembang PHP, kamu sekarang harus menyadari repo Github "homebrew-php" Jose Gonzalez, yang memiliki banyak "brews" yang berguna untukmu. Jika pernah bertanya pada diri sendiri bagaimana cara menginstal PHP 5.4 secara manual, kamu berada disana. Sekarang jika kamu mengalami masalah saat menginstal Homebrew, lihat Jose's Readme. Untuk menyelesaikan wisata Homebrew kita, kita ingin "mengetuk" formula brew Jose dengan menjalankan perintah berikut di dalam aplikasi terminalmu: brew tap homebrew/dupes Ini akan memperolehkan kita beberapa dependensi yang kita butuhkan untuk formula Jose. brew tap josegonzalez/homebrew-php Selesai! Sekarang kita harus siap untuk menginstal Xdebug dengan cara yang nyaman, di Mac. Instal XdebugKembali ke aplikasi terminalmu, harap jalankan: brew install php54-xdebug Jika Anda menggunakan PHP 5.3, ganti saja "4" dengan "3" ;) Instalasi akan memakan waktu lama. Setelah selesai, kamu akan melihat ikon bir kecil dan beberapa petunjuk lebih lanjut yang dapat kamu abaikan. Jadi apa yang baru saja terjadi? Homebrew mendownload semua file termasuk dependensinya dan membangunnya untukmu. Seperti yang telah saya katakan padamu, mengkompilasi sendiri pada Mac bisa merepotkan. Pada akhirnya,
kita mendapatkan
Untuk akhirnya menginstal Xdebug, kita hanya perlu mengikuti beberapa langkah lagi. Ubah direktori ( cd /Applications/MAMP/bin/php/php5.4.4/lib/php/extensions/no-debug-non-zts-20100525 Kamu dapat memeriksa ulang jalur dengan melihat
baris terakhir Backup mv xdebug.so xdebug.so.bak Kemudian copy Homebrew Xdebug build-mu: cp /usr/local/Cellar/php54-xdebug/2.2.1/xdebug.so /Applications/MAMP/bin/php/php5.4.4/lib/php/extensions/no-debug-non-zts-20100525/ Jika kamu ingin memaksa perintah copy ( Terakhir, namun tidak kalah pentingnya, kita perlu memodifikasi file Sekarang luncurkan ulang MAMP, masuk ke Jika tidak berhasil, pastikan kamu benar-benar menyalin Memulai DebuggingSebelum kita benar-benar memulai debugging,
kita perlu mengaktifkan Xdebug. Oleh karena itu, saya harap kamu tidak menutup xdebug.remote_enable = On Simpan dan tutup file Jika tidak, ikuti prosedur yang sama dengan yang kamu gunakan untuk menambahkan Sekarang, buka IDE pilihanmu. kamu bisa menggunakan Xdebug dengan sejumlah solusi software populer seperti Eclipse, Netbeans, PhpStorm dan juga Sublime Text. Seperti yang saya katakan sebelumnya, saya akan menggunakan PhpStorm EAP 6 untuk demo ini. Di dalam PhpStorm, buka preferensi aplikasi dan cari jalan ke "PHP \ Debug \ DBGp Proxy" di sisi kiri, seperti pada gambar di bawah ini: Sekarang pilih kunci IDE pribadimu. Ini bisa berupa string alfanumerik yang kamu inginkan. Saya lebih suka menyebutnya Tip: Jika kamu perlu menyesuaikan ini, tambahkan Perhatian: Komponen lain dapat mengubah nilai ini di dalam PhpStorm, jadi hati-hati jika ada yang gagal. Selanjutnya, klik tombol telepon merah kecil dengan bug kecil di sebelahnya di toolbar atas. Ini seharusnya berubah menjadi hijau. Hal ini membuat PhpStorm mendengarkan koneksi Xdebug yang masuk. Sekarang kita perlu membuat sesuatu untuk debug. Buat file PHP baru, sebut saja apa pun yang kamu suka dan paste dalam kode berikut: <?php // Declare data file name $dataFile = 'data.json'; // Load our data $data = loadData($dataFile); // Could we load the data? if (!$data) { die('Could not load data'); } if (!isset($data['hitCount'])) { $data['hitCount'] = 1; } else { $data['hitCount'] += 1; } $result = saveData($data, $dataFile); echo ($result) ? 'Success' : 'Error'; function loadData($file) { // Does the file exist? if (!file_exists($file)) { // Well, just create it now // Save an empty array encoded to JSON in it file_put_contents($file, json_encode(array())); } // Get JSON data $jsonData = file_get_contents($file); $phpData = json_decode($jsonData); return ($phpData) ? $phpData : false; } function saveData($array, $file) { $jsonData = json_encode($array); $bytes = file_put_contents($file, $jsonData); return ($bytes != 0) ? true : false; } Sekarang kode ini salah secara bawaan, tetapi kita akan memperbaikinya sebentar lagi, di bagian selanjutnya. Pastikan semua sudah tersimpan dan buka browser-mu ke skrip yang baru kita buat. Saya akan menggunakan Google Chrome untuk demo ini, namun setiap browser juga bisa melakukannya. Sekarang mari kita luangkan waktu untuk memahami bagaimana proses debugging diinisialisasi. Status kita saat ini adalah: Xdebug diaktifkan sebagai ekstensi Zend, mendengarkan pada Jadi bagaimana kita mendapatkan cookie itu? Instal "Xdebug helper" ke browser Google Chrome-mu atau cari ekstensi yang akan melakukannya untuk browser yang kamu gunakan. Setelah kamu menginstal ekstensi, klik kanan bug kecil yang muncul di bar alamatmu dan masuk options . Konfigurasikan nilai untuk kunci IDE agar sesuai dengan kunci yang kamu pilih di IDE-mu, seperti: Setelah mengonfigurasinya, klik bug dan pilih "Debug" dari daftar. Bug seharusnya berubah menjadi hijau: Sekarang, kembali ke PhpStorm atau IDE pilihanmu dan tetapkan "breakpoint". Breakpoints seperti spidol pada garis yang memberi tahu debugger untuk menghentikan eksekusi skrip pada breakpoint tersebut. Di PhpStorm, kamu bisa menambahkan breakpoints dengan mengklik spasi di sebelah nomor baris di sisi kiri: Coba klik di mana titik merah muncul pada tangkapan layar. Kamu kemudian akan memiliki sebuah breakpoint set di mana skripmu seharusnya berhenti sebentar. Catatan: Kamu dapat memiliki banyak breakpoint dalam sebanyak mungkin file yang kamu inginkan. Sekarang kita sudah siap. Kembali ke browser-mu, pastikan bug berwarna hijau dan muat ulang halaman untuk mengirimkan cookie dengan request berikutnya. Petunjuk: jika kamu menetapkan cookie, itu akan tersedia untuk request berikutnya. Jika semuanya berjalan sesuai rencana, window ini harus muncul di dalam PhpStorm untuk memberi tahumu tentang koneksi debug yang masuk: Apakah window tidak muncul untukmu? Mari kita lakukan beberapa pemecahan masalah dan ulangi apa yang perlu diatur supaya berhasil:
Jika kamu mendapatkan dialog yang terlihat pada gambar sebelumnya, tolong setujui itu. Ini akan membawamuke mode debug, seperti: Kamu dapat melihat bahwa debugger menghentikan eksekusi skrip di breakpoint-mu, menyoroti garis biru. PHP sekarang menunggu dan dikendalikan oleh Xdebug, yang sedang dikemudikan oleh tanganmu sendiri mulai sekarang. Ruang kerja utama kita akan menjadi bagian bawah IDE yang sudah menunjukkan beberapa informasi tentang skrip yang berjalan (superglobals). Dan apakah kamu akan melihat itu? Ada cookie yang kita tetapkan untuk memulai sesi debugging. Kamu sekarang bisa mengklik superglobals dan memeriksa nilai mereka pada saat ini juga. PHP sedang menunggu, tidak ada batas waktu, setidaknya tidak bawaan 30 detik. Di sisi kiri, kamu akan melihat beberapa tombol. Untuk saat ini, hanya "Play" dan "Stop" yang menarik bagi kita. Tombol putar hijau akan melanjutkan skripnya. Jika ada breakpoint lain dalam kode, skrip akan berlanjut sampai mencapai breakpoint dan berhenti lagi. Tombol berhenti merah membatalkan naskahnya. Sama seperti Sekarang yang benar-benar menarik datang di bagian atas window debug: Mari kita periksa dengan cepat:
Sekarang jangan khawatir, karena kamu menggunakan Xdebug, kamu akan cepat beradaptasi dengan cara pintas pada keyboard. Debugging Sebenarnya Beberapa Contoh KodeSaya sudah mengatakan kepadamu bahwa kode yang kamu copy/paste itu salah, jadi kamu harus men-debugnya. Mulai lompati kode, pernyataan per pernyataan. Perhatikan bahwa garis biru hanya berhenti pada garis yang benar-benar berisi perintah. Spasi dan komentar akan dilewati. Setelah kamu mencapai pemanggilan fungsi ke Kamu dapat melihat dua
variabel baru di panel "Variabels" di bagian bawah layar. Nah, mengapa variabel Berhenti pada pernyataan Array Perbaiki baris tersebut untuk menyatakan: return $phpData;
Sekarang sepertinya kita
masih punya masalah saat kita masuk ke kondisi. Harap perbaiki kondisi untuk menggunakan if (is_null($data)) { die('Could not load data'); } Sekarang terserahmu untuk mencoba dan melangkah sedikit. Saya menyarankan untuk mengembalikan skrip ke versi salah yang asli, debug dengan KesimpulanSepanjang artikel ini kamu seharusnya mendapatkan banyak pengetahuan baru. Jangan ragu untuk membacanya lagi dan untuk membantu seorang teman mengatur Xdebug - tidak ada yang lebih baik dari itu! Kamu mungkin ingin mencoba mengganti tindakan debug biasa dengan menggunakan Xdebug. Terutama dengan proyek berorientasi objek yang lebih besar, karena mereka menjadi lebih mudah untuk melakukan debug dan bahkan mengejar ketertinggalan arus, jika kamu tidak mendapatkan sesuatu dengan segera. Perhatikan bahwa ini hanyalah puncak gunung es. Xdebug menawarkan lebih banyak kemampuan yang perlu dieksplorasi juga. Jangan ragu untuk mengajukan pertanyaan apapun di komentar dan beri tahu apa pendapatmu. Apa itu debugging PHP?XDebug adalah extension PHP yang memungkinkan kita untuk melakukan debugging dengan menggunakan IDE pemrograman seperti Visual Studio Code. Beberapa fitur yang dimiliki XDebug seperti: Set/Remove breakpoints. Perform an automatic stack trace. Set a manual variable watch.
Bagaimana cara menjalankan php di Visual Studio Code?Setting PHP Executable Path di Visual Studio Code pada Windows. Buka VSCode.. Pilih File > Preferences > Settings.. Lakukan pencarian menggunakan string “php”. Pada “PHP > Validate: Run”, klik “Edit in settings.json”. Tambahkan baris: “php. validate. ... . Tutup kembali (penyimpanan dilakukan otomatis). |