2013-10-02 3 views
56

का उपयोग कर XDebug और RESTful सर्वर XDebug के साथ काम करने के लिए मुझे एक REST क्लाइंट (जैसे PHPStorm या POSTman में बनाया गया) कैसे प्राप्त किया जा सकता है?एक्सडीबग और पीएसपीएसटॉर्म या POSTman

एक्सडीबग के वर्तमान सेट-अप में, पीएचपीएसटॉर्म और Bookmarklet provided का उपयोग करके मैं इसे क्रोम और फ़ायरफ़ॉक्स दोनों में काम करने में सक्षम हूं - लेकिन जैसे ही मैं POSTman या किसी अन्य आरईएसटी क्लाइंट के साथ प्रयास करता हूं, मैं नहीं कर सकता यह कैसे शुरू करें इसे समझें।

चीयर्स।

+1

उस "फोन हैंडल" आइकन का उपयोग करें ताकि आईडीई डीबग कनेक्शन सुनना शुरू कर दे। फिर या तो प्रत्येक ** php स्क्रिप्ट ('xdebug.remote_autostart = 1') डीबग करने के लिए xdebug (php.ini) को कॉन्फ़िगर करें या वैकल्पिक रूप से देखें कि क्या xdebug सत्र प्रारंभ पैरामीटर (' XDEBUG_SESSION_START = {{name}} ') को URL में जोड़ना है मदद करेगा: http://xdebug.org/docs/remote। या .. आप xdebug कुकी को हेडर में से एक के रूप में पास कर सकते हैं (उदाहरण के लिए, बुकमार्कलेट द्वारा सेट किया गया एक)। इसके अलावा: http://youtrack.jetbrains.com/issue/WI-17031 – LazyOne

+2

मैं प्रत्येक अनुरोध पर XDEBUG शुरू होने से बचने की कोशिश कर रहा था - हालांकि, यूआरएल के अंत में 'XDEBUG_SESSION_START = PHPSTORM' जोड़ना एक इलाज करता है । (थोड़ा गन्दा समाधान, लेकिन जो काम करता है) –

उत्तर

124

तक http://youtrack.jetbrains.com/issue/WI-17031 आप इन तरीकों में से एक कोशिश कर सकते हैं लागू किया जाएगा: डिबग करने के लिए हर PHP स्क्रिप्ट प्रयास करने के लिए

  1. अपने xdebug कॉन्फ़िगर करें (संपादन php.ini द्वारा) (xdebug.remote_autostart = 1)

  2. वास्तविक URL (XDEBUG_SESSION_START={{KEY}} - http://xdebug.org/docs/remote) पर xdebug सत्र प्रारंभ पैरामीटर जोड़ें, उदाहरण के लिए: ?XDEBUG_SESSION_START=PHPSTORM

  3. पास xdebug हेडर के रूप में कुकी (जिनमें bookmarklet या ब्राउज़र एक्सटेंशन द्वारा निर्धारित है, उदाहरण के लिए)

इस कार्य के लिए - सुनिश्चित करें कि "फोन संभाल" आइकन सक्रिय होता है बनाने के (Run | Start Listen for PHP Debug Connection) अग्रिम रूप से।

+0

आपके उत्तर के लिए धन्यवाद। जैसा कि मैंने उपरोक्त कहा था, दूसरा व्यक्ति मेरे लिए काम करता था, हालांकि मुझे लगता है कि मुझे तीसरे को लागू करने की कोशिश में अधिक दिलचस्पी होगी - मेरी एकमात्र समस्या यह है कि मुझे POSTman या PHPStorm के माध्यम से कोई खुशी सेटिंग कुकीज़ नहीं मिली है। किसी भी मामले में, यह अब काम करता है, इसलिए धन्यवाद :) –

+1

यदि कोई भी आरईएसटी कंसोल क्रोम एक्सटेंशन का उपयोग कर रहा है, तो XDEBUG_SESSION_START जोड़कर अनुरोध और पेलोड (अनुरोध पैरामीटर्स) के तहत मूल्य के रूप में PHPSTORM को मेरे लिए काम किया – JackalopeZero

+8

यह मेरी समस्या हल करता है, मुझे https: // fqdn/rest/path रखना था? XDEBUG_SESSION_START = PHPSTORM, मुझे तब भी शीर्षलेख में जोड़ना पड़ा: कुकी: XDEBUG_SESSION = PHPSTORM।मैं वर्तमान में एक आरामदायक सेवा डिबग कर रहा हूं, इसलिए यह महत्वपूर्ण था – krob

2

यह मुझे पागल कर रहा था। मैंने अभी PHP 7.1 और xdebug को अपडेट किया है जो काम नहीं कर रहा था। मैंने xdebug.so फ़ाइल (लिनक्स) और php --version अपडेट किया है इंगित किया है कि xdebug वास्तव में लोड किया जा रहा था और काम कर रहा था। लेकिन जब मैं पोस्टमैन का उपयोग करता हूं तो डीबगर कभी नहीं मारा जाता।

यहां समाधान है। आप अपने सर्वर के रूप में अपाचे का उपयोग कर रहे हैं तो आप पीएचपी 7.1 mods के सक्षम और अपाचे रीबूट करने की आवश्यकता: sudo service apache2 restart

+0

इसने मेरे लिए समस्या हल की। मैं वैलेट का उपयोग कर रहा हूं, इसलिए 'वैलेट स्टॉप' और 'वैलेट स्टार्ट' करने से चाल चल रही है। – leonardfactory

-3

https://github.com/tacnoman/dephpugger इस lib रन टर्मिनल में डीबगर (पायथन और रूबी के लिए Byebug के लिए ipdb की तरह)। उपयोग करना बहुत आसान है और उदाहरण है कि php cli स्क्रिप्ट और वेबसर्वर को कैसे चलाएं।

+0

को और जानकारी चाहिए। –

संबंधित मुद्दे