आप प्लग इन कैसे करते हैं?


49

मैं प्लगइन संलेखन के लिए बहुत नया हूँ और एक कठिन समय डिबगिंग कर रहा था।

मैंने बहुत सी प्रतिध्वनि का उपयोग किया और यह टेढ़ी-मेढ़ी है।

मुझे यकीन है कि ऐसा करने का एक बेहतर तरीका है, शायद एक डिबगर के साथ एक आईडीई जो मैं प्लगइन सहित पूरी साइट को चला सकता हूं?


1
मैंने एक आईडीई नहीं देखा है जो पूरी तरह से आईडीई के भीतर वर्डप्रेस चलाता है ... हालांकि यह भयानक होगा। मैं WAMP को स्थानीय रूप से चलाकर प्लग-इन को डीबग करता हूं और ड्रीमविवर में कोड करता हूं। यदि आप WP_DEBUGझूठ बोलते हैं, जैसा कि जॉन अनुशंसा करता है, तो आपको अपनी स्क्रिप्ट के भीतर क्या गलत हो रहा है, अगर कुछ भी हो, तो इसका एक अच्छा विचार मिलता है। फिर आप Dreamweaver में एडिट कर सकते हैं, तुरंत बदलाव देखने के लिए Ctrl + S और फिर F5 को ब्राउज़र में हिट कर सकते हैं।
एमान

1
@EAMann - PhpEd (विंडोज के लिए) और PhpStorm + XDEBUG (मैक, लिनक्स और विंडोज के लिए) दोनों की जांच करना सुनिश्चित करें।
माइकस्किंकल

जवाबों:


21

Wp-config.php में जाएं और बदल define('WP_DEBUG', false);जाएं define('WP_DEBUG', true);। इसके अलावा, एंड्रयू नैसिन के लॉग डिप्रेस्ड नोटिसेस प्लगइन स्थापित करें।


12
मैं Nacin के अन्य लेख को भी देखूंगा
kevtrout

PHP 5.4+ के साथ आप संभवतः E_STRICT नोटिस के साथ जलमग्न हो जाएंगे। इस जिप को प्लगइन्स फोल्डर में छोड़ें और सख्त नोटिस को हटाने के लिए सक्रिय करें, अपनी सामान्य सेवा में वापस आने के लिए निष्क्रिय करें।
वेबवार्ता

12

यदि आपको त्रुटियां मुद्रित हो रही हैं, तो x-debug एक शानदार PHP एक्सटेंशन है जो PHP में आधुनिक बैकट्रैक जोड़ता है।

यदि आप यह जानने की कोशिश कर रहे हैं कि क्या हो रहा है जहाँ कोई त्रुटि नहीं है, तो मेरा पसंदीदा तरीका एक फ़ंक्शन को परिभाषित करना है जो एक फ़ाइल में इसके आउटपुट को लॉग करता है। तो मैं ($ चर) plog करता हूं और वह लॉग फ़ाइल में दिखाई देता है जिसकी मैं जांच कर सकता हूं। यह विशेष रूप से तब उपयोगी होता है जब आप हेडर से पहले जो हुआ उसे काम करने की कोशिश कर रहे हैं () कहा जाता है, या अन्य परिस्थितियाँ जहाँ आप STDOUT पर प्रिंट नहीं कर सकते।


10

Xdebug + NetBeans IDE का उपयोग करें । जब पूरी तरह से कॉन्फ़िगर किया गया - जो करना आसान है - आप अपने प्लगइन में ब्रेक पॉइंट सेट कर सकते हैं और ब्रेक पॉइंट पर वेरिएबल देख सकते हैं। मुझे लगता है कि यह प्लगइन्स या उस मामले के लिए किसी भी php अनुप्रयोगों को डिबग करने का सबसे अच्छा तरीका है।


6

मैं पुराने जमाने के तरीके, error_log()आईएनजी और var_dumpआईएनजी को डीबग करता हूं । मुझे लगता है कि मेरे लिए सबसे कुशल तरीका है, मेरे पास विभिन्न प्रकार के डेटा को संभालने के लिए कुछ रैपर फ़ंक्शन हैं, क्योंकि error_logआईएनजी सरणियाँ और ऑब्जेक्ट एक दर्द हो सकते हैं। इसके अलावा, print_r()जब यह एक में नहीं है पढ़ने के लिए मुश्किल हो सकता है <pre>। मेरे पास tj_log()त्रुटि लॉगिंग के लिए है, और tj()आउटपुट दिखाने के लिए (जो मूल रूप से एक प्रेजेंटेबल मैनर में कोई डेटा प्रकार दिखाता है:

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 );या जो भी हो।


5

कई आईडीई के साथ छेड़छाड़ करने के बाद, मैं एक अल्ट्रा-अनुकूलित सिंटैक्स हाइलाइटिंग रंग योजना के साथ सादे पुराने नोटपैड ++ में बस गया ।

मेरे पास मैक्रो सेट अप ऐसा है कि जब मैंने Shift-Ctrl-X मारा, तो निम्न कोड को आउटपुट मिलता है जहां मेरा कर्सर है:

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

यह सरल है, लेकिन मैं आम तौर पर इस मैक्रो प्लस WP_DEBUG सक्षम के साथ अपने 90% बग का शिकार कर सकता हूं।


2
अच्छा कदम। संपादकों रॉक में कीबोर्ड हॉटकी!
20

1
मैं print_r($var, true)इसके बजाय दिए गए आउटपुट को पसंद करता हूं var_dump
ब्रासोफिलो

5

मैंने लॉगफ़ाइल बनाने के लिए एक छोटा वर्ग लिखा है, जब आप अजाक्स कॉल डिबगिंग कर रहे हैं तो बहुत उपयोगी है।

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

आपको केवल कुछ करने की आवश्यकता है:

डीबग :: लॉग ("यह एक डीबग संदेश है");

जब उस लाइन को निष्पादित किया जाता है, तो लॉग फ़ाइल में एक संदेश जुड़ जाएगा और उसके बाद आप पूंछ कमांड का उपयोग कर सकते हैं (यदि आप कुछ यूनिक्स की शैली ऑपरेटिव प्रणाली का उपयोग कर रहे हैं)

tail -f mylogfile.log

यदि आप इस फ़ंक्शन को किसी सरणी या ऑब्जेक्ट के रूप में अच्छी तरह से पास कर सकते हैं।

ध्यान दें कि आपको उस मार्ग के लिए लाइन 20 को बदलने की आवश्यकता है जहाँ आप अपनी लॉग फ़ाइल को सहेजना चाहते हैं


3

मैं विंडोज पर Linux और UltraEdit पर Aptane IDE का उपयोग करता हूं, और यह भी एक PHP- पार्सर है। इसके अलावा, मैं xDebug से सभी संकेतों को निरंतर WP_DEBUGपरिभाषित परिभाषित करता हूं wp-config.php

इस विषय पर मेरी पोस्ट भी देखें और टिप्पणी करने के लिए स्वतंत्र महसूस करें और अपने विकास उपकरणों के बारे में प्रतिक्रिया दें।


2

मैं FirePHP की जाँच करने की सलाह देता हूं । आप HTTP हेडर पर फ़ायरफ़ॉक्स के फ़ायरबग पर डिबग जानकारी भेज सकते हैं, जो आमतौर पर क्लीनर डिबग आउटपुट के लिए बनाता है।



1

वहाँ दो IDEs मैं सिफारिश कर सकते हैं कर रहे हैं और मैं दोनों बड़े पैमाने पर उपयोग किया है: PhpED (केवल Windows) और PhpStorm + XDebug (मैक, विंडोज और लिनक्स।) मैं मैक पर अब कर रहा हूँ तो केवल उत्तरार्द्ध उपयोग कर सकते हैं।

दोनों का ROCK! अच्छी खबर यह है कि सितंबर 2010 से पहले PhpStorm $ 49 है और उसके बाद केवल $ 99 है। अगर मैं विंडोज पर था और मुझे फिर से चुनना था, तो निश्चित नहीं कि मैं किसे चुनूं।

सच कहूं तो मैं मदद नहीं कर सकता, लेकिन महसूस करता हूं कि इन दोनों उपकरणों में से एक का उपयोग न करने वाला कोई भी प्लगइन डेवलपर गंभीर रूप से विकलांग है, खासकर यदि वे वर्डप्रेस प्लगइन्स को विकसित करने के लिए अपेक्षाकृत नए हैं।


1

क्रुमो - स्टाइल php डिबग क्लास

एक और बहुत अच्छी बात है "क्रामो" php क्लास। यह implemented मिनट में कार्यान्वित किया जाता है और सभी प्रकार के चर को डीबग करने का एक आसान तरीका प्रदान करता है:

  • वस्तुओं,
  • सरणियों,
  • तार / नाव / पूर्णांक / आदि।

साथ ही यह बैकट्रॉस्टिंग में मदद करता है, भरी हुई कक्षाओं को दिखाता है या मांग पर फाइलें और सब कुछ शामिल करता है।

इसके अलावा यह मुफ़्त है!

डाउनलोड

क्रुमो @ स्रोत


0

मैं एक $ 13 प्लगइन का उपयोग करता हूं जिसे लॉगप्रेस कहा जाता है जिसे आप थीमफोरेस्ट पर खरीद सकते हैं और यह एक परम ईश्वर-संदेश है। आप उनके प्लगइन्स और साइट से संबंधित सब कुछ डीबग कर सकते हैं। फायरबग कंसोल लॉगिंग और एक पूरी बहुत अधिक का समर्थन करता है। मैं इसके बिना नहीं रह सकता, यही कारण है कि मैं इस प्लगइन का कितना उपयोग करता हूं।

यह प्लगइन शायद मेरे द्वारा खर्च किया गया सबसे अच्छा पैसा है और इसने मेरे वर्डप्रेस प्लगइन विकास में अनगिनत घंटे बचाए हैं।


वाह, मुझे एक भुगतान किए गए प्लगइन की सिफारिश करने के लिए अस्वीकार कर दिया गया था, जिसमें मेरा कोई संबंध नहीं है? यह थोड़ा भारी हाथ है?
ड्वेन चारिंगटन

मैं मतदान करने वाला नहीं हूं, लेकिन मैं हैरान नहीं हूं। आप शब्दों का उपयोग कर रहे हैं जैसे कि आप प्लगइन बेचने की कोशिश कर रहे हैं। चीजों की सिफारिश करना ठीक है, लेकिन "पूर्ण ईश्वर-भेजना" जैसी कठिन बिक्री को धक्का देना। लोग विज्ञापनों से नफरत करते हैं। बस भाषा को टोन करें और सिफारिश खुद के लिए बोलेंगे।
icc97

0

मैं phpED और xdebug का उपयोग कर रहा हूं, लेकिन मेरे लिए (और किसी और के लिए लगता है) यह प्लगइन्स या थीम की फ़ाइल को डीबग करना असंभव है! डीबगर केवल ब्रेकपॉइंट पर रुकता है जो मुख्य या मूल "कोर" फाइलों में हैं! कोई भी मेरी मदद कर सकता है?


0

सबसे पहले मैं define('WP_DEBUG', false);अपने स्थानीय इंस्टॉल में wp-config.php फ़ाइल (जैसा कि ज्यादातर लोगों ने कहा है) में जोड़ता हूं, जो एक प्रासंगिक उत्पादन साइट (फाइल और डेटा दोनों) की एक हालिया प्रतिलिपि है। यह सामान को त्वरित, सुरक्षित, अलग बनाता है, लेकिन कम से कम एक जगह अच्छी तरह से दर्शाता है कि प्लगइन वास्तव में उपयोग किया जाएगा।

मैं कुछ डिबग बार ऐड-ऑन (उदाहरण के लिए ग्राहक) के कुछ के साथ डिबग बार प्लगइन भी जोड़ता हूं - आपके प्लगइन्स के लिए उपयुक्त।

मैं फ़ायरफ़ॉक्स के लिए फ़ायरबग ऐड-ऑन का भी उपयोग करता हूं जो HTML, सीएसएस और जावास्क्रिप्ट मुद्दों को ट्रैक करने में मदद करने के लिए उत्कृष्ट है, लेआउट अजीबता को देखने के लिए भी अच्छी तरह से।

मैं UltraEdit का उपयोग कर कोड करता हूं, जिसे मैंने 15+ वर्षों तक कोडिंग के पूरे गुच्छा (SQL के माध्यम से php) के लिए काम और घर दोनों पर उपयोग किया है और इसलिए यह मेरे लिए अच्छी तरह से काम करता है, लेकिन शायद मेरे पास IDE के रूप में रेट करने के लिए पर्याप्त नहीं है बहुत से लोग। इसमें सिंटैक्स हाइलाइटिंग, स्वचालित समापन और कोड लेआउट विशेषताएं और HTML और सीएसएस शॉर्टकट टूल का एक गुच्छा है जो टाइपोस और एक जैसे से बचने में मदद कर सकता है। ज्यादातर यह मेरे लिए एक परिचितता है जो एक महत्वपूर्ण पहलू है जिसे अक्सर नए में भीड़ की अनदेखी की जाती है। स्नायु मेमोरी कोडिंग में भी दोहराव को सहायता करती है।

और निश्चित रूप से मेरे पास कोडेक्स से कुछ उपयुक्त पृष्ठ है जो किसी उपयुक्त टैब पर दूसरे टैब में खुला है।

ये सभी कोडिंग, पार्सिंग, फ़ंक्शनल और लेआउट त्रुटियों को उजागर करने के लिए अलग-अलग तरीकों से मदद करते हैं और इस बात में बहुत हस्तक्षेप नहीं करते हैं कि मैं कैसे कोड में या यदि कुछ भी नहीं है। यदि आप प्रयोग कर रहे हैं या किसी ऐसी चीज़ के इर्द-गिर्द काम कर रहे हैं, जिसे आप बाद में फिर से देख लेंगे, तो अधिकांश को अनदेखा या निष्क्रिय किया जा सकता है।

ओह, और एक कुंजी में कुछ की जांच करने के लिए एक अच्छी तरह से तैनात गूंज या प्रिंट_ के साथ कुछ भी गलत नहीं है (इसलिए जब तक आप उन्हें हटा दें जब आप काम कर रहे हों)।


0

की जाँच करें क्वेरी मॉनिटर के साथ संयुक्त बढ़ाएँ क्वेरी मॉनिटर वर्डप्रेस के व्यापक डिबगिंग (PHP त्रुटियों / नोटिस / stricts / चेतावनी, डेटाबेस प्रश्नों, पथ, स्थिरांक, HTTP अनुरोध, यात्रियों, सत्र चर, वर उदासीनता) के लिए।

पोस्ट पर विशिष्ट जानकारी के लिए सभी पोस्ट मेटा और सेविंग व्हाट्सएप भी देखें ।


0

PHPStorm और Xdebug वर्डप्रेस डेवलपमेंट के लिए मेरे लिए एक गेम है। अब बहुत सलाह देते हैं। विशेष रूप से उनके इनलाइन डिबग टूल के साथ।


आप इसे कैसे सेट करते हैं?

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.