Symfony2 doctrine2 में var_dump के साथ बहुत अधिक डेटा


100

मेरे पास लगभग 40 संस्थाएँ और कई द्विदिश संबंध हैं। जब भी मैं var_dump ($ उपयोगकर्ता) या किसी भी इकाई का उपयोग करता हूं मेरा ब्राउज़र सरणियों और चर के बहुत अधिक डेटा के साथ लोड हो जाता है तो यह बस दुर्घटनाग्रस्त हो गया।

मैं चाहता हूँ कि समस्या क्या है।

डेटा ठीक डाला जा रहा है। क्या मैं उत्पादन में समस्या पैदा कर सकता हूं


हम किस ब्राउज़र के बारे में बात कर रहे हैं?
का भूत

3
क्या आप xdebug का उपयोग कर रहे हैं? यदि नहीं, तो इसका उपयोग करने पर विचार करें और var_dump के बजाय केवल Ecplipse, Netbeans या PHPStorm जैसे IDE के साथ चरण डीबगर का उपयोग करें। ये सभी वैरिएबल डेटा को अच्छी तरह से प्रदर्शित करेंगे।
१२

"क्रैश" से आपका क्या मतलब है - क्या ब्राउज़र एप्लिकेशन (या टैब) बंद है, या यह कोई परिणाम नहीं दिखाता है, या पृष्ठ बाधित है?
यूरी

मेरा ब्राउज़र मेरे सभी प्रवेशों और उस सभी के साथ चर डेटा का बहुत लंबा पृष्ठ प्रदर्शित करता है। ऐसा लगता है कि यह कभी न खत्म होने वाले पाश में चला जाता है। मैं botf फ़ायरफ़ॉक्स और क्रोम की कोशिश की। अगर मैं किसी भी अन्य वर्ग की कोशिश करता हूं जिसका कोई संबंध नहीं है तो यह ठीक काम करता है लेकिन कई रिश्तों के साथ यह कंप्यूटर को फ्रीज कर देता है। मुझे कार्य समाप्त करना था
मिराज

मेरे पास नंगे-हड्डियों की कक्षा है और मेरा ब्राउज़र भी दुर्घटनाग्रस्त हो गया है। मैं इन सभी मंदबुद्धि चूक से नफरत कर रहा हूँ।
चोकोडेवेलपर

जवाबों:


221

डॉकट्रिन कॉमन द्वारा प्रदान की गई डिबग विधि डंप () के साथ var_dump () को बदलें ।

\Doctrine\Common\Util\Debug::dump($user);

यह एकल ऑब्जेक्ट्स और डॉक्ट्रिन संग्रह के लिए काम करता है और ब्राउज़र को आपके द्वारा प्रदर्शित होने वाली समस्याओं को प्रदर्शित करने से रोकना चाहिए।


5
आप MaxDepth केdump() साथ भी हो सकते हैं , दूसरे तर्क में MaxDepth हैdump()
एमबी काकडिय़ा

3
यदि आप अपने php त्रुटि लॉग में डीबग आउटपुट रखना पसंद करते हैं, तो निम्न का उपयोग करें: error_log(print_r(\Doctrine\Common\Util\Debug::export($variable, $depth),1)); यह हर बार टाइप करने के लिए बहुत बोझिल है, लेकिन आप आसानी से इसके लिए मैक्रो बना सकते हैं।
एंड्रिया स्प्रेगा

यह समारोह बहुत मददगार है! मुझे ब्राउज़र क्रैश से भी बचाया।
रेन



4

समस्या यह है कि एक द्विदिश संबंध में दोनों संस्थाओं का एक-दूसरे से जुड़ाव होता है, इसलिए Unit1 प्रदर्शित करते समय var_dump को भी Unit2 की सभी संपत्तियों को प्रिंट करना होगा, जिसमें स्वयं को लूप देते हुए आपको श्लोक 1 शामिल करना शामिल है।


यह एकमात्र ऐसा उत्तर है, जो यह बताता है कि ऐसा क्यों होता है।
user2342558

4

सिम्फनी <2.6

आप \Doctrine\Common\Util\Debug::dump($variable, $depth);प्रॉक्सी जानकारी के बिना इसे प्रदर्शित करता है सिद्धांत उत्पादन का उपयोग कर सकते हैं ।

सिम्फनी> 2.6

यदि आप सिम्फनी 2.6 या अधिक का उपयोग कर रहे हैं, तो मैं दृढ़ता से आपको उपयोग करने की सलाह देता हूं dump()। यह एक अच्छी तरह से तैयार और रंगीन आउटपुट दिखाता है, और आप पंक्तियों को गतिशील रूप से खर्च / छिपा सकते हैं। यहां छवि विवरण दर्ज करें



2

सिम्फनी 2.6 के साथ आप अब अपने नियंत्रक में डंप ($ var) और टहनी में {{डंप (var)}} का उपयोग कर सकते हैं।

सरणी ('देव', 'परीक्षण') अनुभाग में अपनी AppKernal.php फ़ाइल में इसे जोड़ना सुनिश्चित करें।

$bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();

2

डंप ($ उपयोगकर्ता) का उपयोग करें और आप सिम्फनी प्रोफाइलर में सही परिणाम देख सकते हैं! सौभाग्य


1

बस इको सीरियलाइज़ ($ उपयोगकर्ता) का उपयोग करें;

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