ฉันค่อนข้างใหม่ในการเขียนโปรแกรมเสริมและกำลังประสบปัญหาในการดีบัก
ฉันใช้เสียงสะท้อนมากและเลอะเทอะและน่าเกลียด
ฉันแน่ใจว่ามีวิธีที่ดีกว่าในการทำเช่นนี้บางที IDE กับดีบักเกอร์ที่ฉันสามารถเรียกใช้ทั้งไซต์รวมถึงปลั๊กอินได้
ฉันค่อนข้างใหม่ในการเขียนโปรแกรมเสริมและกำลังประสบปัญหาในการดีบัก
ฉันใช้เสียงสะท้อนมากและเลอะเทอะและน่าเกลียด
ฉันแน่ใจว่ามีวิธีที่ดีกว่าในการทำเช่นนี้บางที IDE กับดีบักเกอร์ที่ฉันสามารถเรียกใช้ทั้งไซต์รวมถึงปลั๊กอินได้
คำตอบ:
ไปลงใน WP-config.php และเปลี่ยนไปdefine('WP_DEBUG', false);
define('WP_DEBUG', true);
ติดตั้งปลั๊กอินประกาศของ Andrew Nacin ด้วย
หากคุณได้รับข้อผิดพลาดจากการพิมพ์ x-debug คือส่วนขยาย PHP ที่ยอดเยี่ยมซึ่งเพิ่ม backtraces ที่ทันสมัยให้กับ PHP
หากคุณกำลังพยายามหาสิ่งที่เกิดขึ้นในที่ที่ไม่มีข้อผิดพลาดแนวทางที่ฉันชอบคือการกำหนดฟังก์ชั่นที่บันทึกผลลัพธ์ไปยังไฟล์ ดังนั้นฉันจึง plog (ตัวแปร $) และที่ปรากฏในล็อกไฟล์ซึ่งฉันสามารถตรวจสอบได้ สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อคุณพยายามหาสิ่งที่เกิดขึ้นก่อนที่จะเรียกส่วนหัว () หรือสถานการณ์อื่น ๆ ที่คุณไม่สามารถพิมพ์ไปยัง STDOUT
ใช้xdebug + NetBeans IDE เมื่อกำหนดค่าอย่างสมบูรณ์ - ซึ่งทำได้ง่าย - คุณสามารถตั้งจุดพักในปลั๊กอินของคุณและดูตัวแปรที่จุดพัก ฉันคิดว่ามันเป็นวิธีที่ดีที่สุดในการดีบักปลั๊กอินหรือแอปพลิเคชัน php สำหรับเรื่องนั้น
ฉัน debug วิธีแบบเก่าerror_log()
ไอเอ็นจีและvar_dump
ไอเอ็นจี ฉันพบว่าเป็นวิธีที่มีประสิทธิภาพที่สุดสำหรับฉันฉันมีฟังก์ชั่น wrapper สองอย่างเพื่อจัดการกับข้อมูลประเภทต่างๆเนื่องจากerror_log
อาร์เรย์และวัตถุอาจมีความเจ็บปวด นอกจากนี้การใช้ในอาจเป็นเรื่องยุ่งยากที่จะอ่านเมื่อมันไม่ได้อยู่ในprint_r()
<pre>
ฉันมีtj_log()
การบันทึกข้อผิดพลาดและtj()
การแสดงผล (ซึ่งโดยทั่วไปจะแสดงชนิดข้อมูลใด ๆ ใน mannor เรียบร้อย:
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 );
}
ดังนั้นฉันแค่ทำ: tj( $current_user );
หรืออะไรก็ตาม
หลังจากทำการเปลี่ยนแปลงด้วย IDE หลายตัวฉันก็ตัดสินลงในNotepad ++เก่าแบบธรรมดาพร้อมกับการเน้นสีแบบพิเศษ
ฉันได้ตั้งค่ามาโครเพื่อที่เมื่อฉันกด Shift-Ctrl-X รหัสต่อไปนี้จะได้รับผลลัพธ์เมื่อเคอร์เซอร์อยู่ที่:
echo "<pre>";
var_dump($);
echo "</pre>";
exit();
มันง่าย แต่โดยทั่วไปฉันสามารถตามล่าหาข้อผิดพลาดของฉันได้ถึง 90% ด้วยแมโครนี้และเปิดใช้งาน WP_DEBUG
print_r($var, true)
var_dump
ฉันเขียนชั้นเรียนเล็ก ๆ เพื่อสร้าง logfile ซึ่งมีประโยชน์มากเมื่อคุณกำลังดีบักการโทร ajax
http://github.com/hunk/Magic-Fields/blob/master/tools/debug.php
คุณต้องการทำสิ่งที่ชอบเท่านั้น:
แก้ไขข้อผิดพลาด :: เข้าสู่ระบบ ("นี่คือข้อความดีบัก");
เมื่อบรรทัดนั้นถูกดำเนินการข้อความจะถูกเพิ่มในล็อกไฟล์และหลังจากนั้นคุณสามารถใช้คำสั่ง tail (หากคุณใช้ระบบปฏิบัติการสไตล์ยูนิกซ์)
tail -f mylogfile.log
หากคุณสามารถส่งผ่านไปยังฟังก์ชั่นนี้อาร์เรย์หรือวัตถุเช่นกัน
โปรดทราบว่าคุณต้องการเปลี่ยนบรรทัด 20 สำหรับเส้นทางที่คุณต้องการบันทึกไฟล์บันทึกของคุณ
ฉันใช้ Aptane IDE บน Linux และ UltraEdit บน Windows และอันนี้ก็มี PHP-parser นอกจากนี้ผมดูคำแนะนำจากทุก xDebug มีค่าคงที่กำหนดไว้ในWP_DEBUG
wp-config.php
ดูโพสต์ของฉันในหัวข้อนี้และรู้สึกอิสระที่จะแสดงความคิดเห็นและให้ข้อเสนอแนะเกี่ยวกับเครื่องมือในการพัฒนาของคุณ
ไม่เลวเช่นกัน: Eclipseมันใกล้กับ PhpStorm + ฟรี
มี IDE สองตัวที่ฉันสามารถแนะนำได้และฉันใช้ทั้งสองอย่าง: PhpED (Windows เท่านั้น) และPhpStorm + XDEBUG (Mac, Windows และ Linux) ตอนนี้ฉันใช้ Mac แล้วเท่านั้น
พวกเขาทั้งคู่ ROCK! ข่าวดีที่ PhpStorm คือ $ 49 ก่อนเดือนกันยายน 2010 และเพียง $ 99 หลังจากนั้น ถ้าฉันอยู่บน Windows และต้องเลือกอีกครั้งไม่แน่ใจว่าจะเลือกแบบไหน
ตรงไปตรงมาฉันอดไม่ได้ที่จะรู้สึกว่านักพัฒนาปลั๊กอินใด ๆ ที่ไม่ได้ใช้หนึ่งในสองเครื่องมือนี้มีความพิการอย่างรุนแรงโดยเฉพาะอย่างยิ่งหากพวกเขาค่อนข้างใหม่ในการพัฒนาปลั๊กอิน WordPress
อีกสิ่งที่ดีจริงๆคือคลาส "krumo" php มันนำมาใช้ใน½นาทีและนำเสนอวิธีง่ายๆในการดีบักตัวแปรทุกประเภท:
นอกจากนี้ยังช่วยในเรื่องการเปลี่ยนเส้นทางแสดงคลาสที่โหลดหรือไฟล์ที่รวมและทุกอย่างตามต้องการ
รวมทั้งได้ฟรี!
Krumo @sourceforge
ฉันใช้ปลั๊กอิน $ 13 เรียกว่าLogPressคุณสามารถซื้อได้ที่ ThemeForest และเป็นระบบส่งของที่แน่นอน คุณสามารถแก้ไขข้อบกพร่องทุกอย่างที่เกี่ยวข้องกับปลั๊กอินและเว็บไซต์ รองรับการบันทึกคอนโซล Firebug และอีกมากมาย ฉันขาดไม่ได้นั่นคือจำนวนฉันใช้ปลั๊กอินนี้
ปลั๊กอินนี้น่าจะเป็นเงินที่ดีที่สุดที่ฉันเคยใช้และประหยัดเวลานับไม่ถ้วนในการพัฒนาปลั๊กอิน Wordpress ของฉัน
ฉันใช้ phpED และ xdebug แต่สำหรับฉัน (และดูเหมือนว่าสำหรับคนอื่น ๆ ) มันเป็นไปไม่ได้ที่จะดีบักปลั๊กอินหรือไฟล์ของธีม! ตัวดีบั๊กจะหยุดที่จุดพักที่อยู่ในไฟล์ "หลัก" หลักหรือดั้งเดิม! ใครช่วยฉันได้บ้าง
ประการแรกฉันเพิ่มลงdefine('WP_DEBUG', false);
ในไฟล์ wp-config.php (ตามที่คนส่วนใหญ่พูด) ในการติดตั้งในพื้นที่ซึ่งเป็นสำเนาล่าสุดของไซต์ที่เกี่ยวข้อง (ทั้งไฟล์และข้อมูล) สิ่งนี้ทำให้สิ่งต่าง ๆ รวดเร็วปลอดภัยแยกออกจากกัน แต่มีการสะท้อนอย่างน้อยหนึ่งที่ที่ปลั๊กอินจะใช้งานจริง
ฉันยังเพิ่มปลั๊กอินDebug Barพร้อมกับส่วนเสริมบางอย่างของ Debug Bar (ตัวอย่างเช่น Transients) - ตามความเหมาะสมกับปลั๊กอินของคุณ
ฉันยังใช้ Firebug add-on สำหรับ Firefox ซึ่งยอดเยี่ยมสำหรับการช่วยติดตามปัญหา html, css และ JavaScript ยังดีสำหรับการดูเลย์เอาต์ที่แปลก
ฉันใช้รหัส UltraEdit ซึ่งฉันใช้มานานกว่า 15 ปีในการเข้ารหัส (php จนถึง SQL) ทั้งที่ทำงานและที่บ้านและมันใช้งานได้ดีสำหรับฉัน แต่อาจจะไม่พอที่จะให้คะแนนสำหรับ IDE หลายคน มันมีการเน้นไวยากรณ์เสร็จสมบูรณ์โดยอัตโนมัติและคุณสมบัติการจัดวางรหัสและพวงของ html และเครื่องมือทางลัด CSS ซึ่งสามารถช่วยหลีกเลี่ยงการพิมพ์ผิดและเหมือนกัน ส่วนใหญ่ทำให้ฉันคุ้นเคยซึ่งเป็นสิ่งสำคัญที่มักจะมองข้ามในการเร่งการใหม่ หน่วยความจำของกล้ามเนื้อช่วยในการทำซ้ำแม้ในการเข้ารหัส
และแน่นอนฉันมักจะมีบางหน้าที่เหมาะสมจาก codex เปิดในแท็บอื่นในแบบอย่างที่เหมาะสม
ทั้งหมดนี้ช่วยในวิธีที่แตกต่างกันในการไฮไลต์ข้อผิดพลาดในการเข้ารหัสการแยกวิเคราะห์การทำงานและการจัดวางและไม่ยุ่งเกี่ยวกับวิธีที่ฉันเขียนโค้ดหรือหากไม่มีอะไรผิดปกติ ส่วนใหญ่สามารถเพิกเฉยหรือปิดใช้งานได้เล็กน้อยหากคุณกำลังทดลองหรือแก้ไขบางสิ่งที่คุณจะกลับมาใหม่ในภายหลัง
โอ้และไม่มีอะไรผิดปกติกับ echo ที่อยู่ในตำแหน่งที่ดีหรือ print_r เพื่อตรวจสอบสิ่งที่สำคัญ (ตราบใดที่คุณลบพวกเขาเมื่อคุณทำเสร็จแล้ว)
ตรวจสอบQuery MonitorรวมกับQuery Monitor Extendสำหรับการดีบักแบบครอบคลุมของ WordPress (ข้อผิดพลาด PHP / ข้อสังเกต / ข้อ จำกัด / คำเตือน, การสืบค้นฐานข้อมูล, เส้นทาง, ค่าคงที่, คำขอ HTTP, ทรานแซคชั่น, ตัวแปรเซสชัน)
ตรวจสอบการลงรายการบัญชีMeta ทั้งหมดและการบันทึกปลั๊กอินใดสำหรับข้อมูลเฉพาะเกี่ยวกับการลงรายการบัญชี
PHPStorm และ Xdebug เป็นเกมที่เปลี่ยนแปลงสำหรับฉันสำหรับการพัฒนา WordPress แนะนำเป็นอย่างยิ่งตอนนี้ ด้วยเครื่องมือดีบักแบบอินไลน์
WP_DEBUG
เป็นเท็จตามที่จอห์นแนะนำคุณจะได้รับความคิดที่ดีว่ามีอะไรผิดปกติเกิดขึ้นภายในสคริปต์ของคุณ จากนั้นคุณสามารถแก้ไขใน Dreamweaver กด Ctrl + S แล้ว F5 ในเบราว์เซอร์เพื่อดูการเปลี่ยนแปลงทันที