कैसे एक रेंडर सरणी में तत्वों को खोजने के लिए


8

मैं बस एक रेंडर सरणी में एक तत्व खोजने में बहुत समय बिताया। मैं आमतौर पर dpm()सरणी को प्रिंट करने के लिए उपयोग करता हूं , और तब तक विकल्पों का विस्तार करता हूं जब तक मुझे नहीं लगता कि मैं क्या देख रहा हूं।

बड़े सरणियों पर जो बोझिल है। जब मैं उपयोग करता हूं print_r(), तो मैं एक पाठ खोज कर सकता हूं, लेकिन फिर सरणी की संरचना को देखना और तत्व को रास्ता खोजना मुश्किल है।

आप अन्य कौन से तरीके सुझा सकते हैं?


यह प्रश्न मेरे पूर्ण प्रतिनिधि को जोड़ने के लायक है !!
निकम्माक

इस सारे काका को सुंदर बनाने के लिए कुछ मॉड्यूल हैं । मैं देखने के लिए बहुत आलसी हूं, लेकिन देव मॉड्यूल क्रामो और अन्य डंप-एन्हाइडर के साथ एकीकृत करता है, अगर मुझे सही याद है। फिर हमेशा एक अच्छा पुराना डिबगर होता है, जहां आप वास्तव में वस्तुओं में भी निरीक्षण और ड्राइव कर सकते हैं।
स्टेफोसोसेलिन

@stefgosselin ओपी पहले से ही साथ Devel मॉड्यूल उपयोग कर रहा है dpm(), मुझे लगता है कि वह किसी दिए गए नाम / कुंजी के द्वारा एक सरणी प्रस्तुत करना में किसी उप-तत्व को खोजने के लिए एक समारोह की तलाश में
क्लाइव

@MotoTribe अगर मुझे वह अधिकार मिल गया है और आप एक फ़ंक्शन की तलाश कर रहे हैं, तो आप किस तरह के इनपुट / आउटपुट की उम्मीद कर सकते हैं? क्या यह कुछ $elements = find_elements_by_key($render_array, 'element_name');तत्वों के सभी प्रकार के एक रेंडर सरणी में एक मिलान कुंजी के साथ लौटाना चाहेंगे?
क्लाइव

सही बात। देवल में "क्रामो डिस्प्ले = विकलांग" एक बेहतर स्वरूपित सरणी दिखाता है जहां मैं एक पाठ खोज का उपयोग कर सकता हूं। आदर्श रूप से क्रामो आउटपुट में एक खोज फ़ंक्शन और एक "कॉपी" सुविधा होनी चाहिए जहां मैं इसे टाइप करने के बिना पूर्ण सरणी पथ ['...' [] ... '' को कॉपी कर सकता हूं। हाँ, आपका कार्य भी भयानक होगा। यह एक Drupal या PHP फ़ंक्शन नहीं है, क्या यह है?
१३:१२

जवाबों:


9

देवल: खोज क्रुमो के लिए विस्तार मॉड्यूल है । यह Krumo / dpm संदेशों में पाठ खोजने और उन स्थानों पर खुली सरणी में जावास्क्रिप्ट का उपयोग करता है।
इस तरह दिखता है:
यहां छवि विवरण दर्ज करें

अपडेट करें

22 अप्रैल 2012 के बाद आपको sdpm()खोज बॉक्स को देखने के लिए फ़ंक्शन का उपयोग करना चाहिए ।


कोई रास्ता नहीं, यह वही है जो मैं देख रहा था !!! धन्यवाद!!!
१५:

@ मोटो ट्राइब, इसलिए इसे स्वीकार किया जा सकता है, मुझे लगता है :)
कलाब्रो

क्षमा करें, वह चूक गया। यह एक भयानक उपकरण है, इसे हर समय उपयोग करें !!!
उवे

मैंने यह एक्सटेंशन मॉड्यूल कहां रखा है? या तो अंदर दीवाल निर्देशिका [\ www \ drupal \ sites \ all \ मॉड्यूल \ devel] या अंदर योगदान मॉड्यूल निर्देशिका [\ www \ drupal \ साइटों \ all \ मॉड्यूल]
GiLL

क्या आप कृपया बता सकते हैं कि sdpm () फ़ंक्शन का उपयोग कैसे करें? कहाँ चिपकाना है? बहुत धन्यवाद।
कोडनेक्स्ट

5

रेंडर ऐरे के साथ बड़ी समस्याओं में से एक यह है कि अक्सर उस जानकारी की केवल पढ़ने वाली प्रतियों का एक गुच्छा होता है जिसे आप खोज रहे हैं। यदि आप वास्तव में रेंडर आउटपुट को बदलना चाहते हैं , तो आपको सही खोज करनी होगी। मैं आमतौर पर डीपीएम () का उपयोग करता हूं, और फिर पृष्ठ स्रोत को देखता हूं और वहां के आउटपुट के माध्यम से खोज करता हूं, जब तक मुझे जो चाहिए वह नहीं मिलता है, तब तक दोनों डिस्प्ले के बीच आगे और पीछे फ्लिप करता हूं।

यदि आप टर्मिनल को दिए गए मार्ग के लिए रेंडर सरणी की सामग्री को डंप करना चाहते हैं (जैसे इसे grep के माध्यम से पास करने के लिए), तो आप ऐसा कुछ कर सकते हैं:

drush ev '$router_item=menu_get_item("node/7"); require_once(DRUPAL_ROOT .
"/" . $router_item["include_file"]);
$render_array=call_user_func_array($router_item["page_callback"],
$router_item["page_arguments"]); print_r($render_array);'

आप अपने ब्राउज़र में सिर्फ 'पृष्ठ का स्रोत' देख सकते हैं और क्लिपबोर्ड का उपयोग कर सकते हैं, लेकिन ऊपर दिए गए एरे को देखने के लिए ड्रश कमांड की शुरुआत हो सकती है।

अपडेट: मुझे इस विषय पर एक बहुत अच्छा लेख मिला: डरावना रेंडर ऐरे - शायद मैंने अब तक जो एसेसरीज प्रस्तुत की हैं, उनका सबसे अच्छा इलाज। मुझे devel_themer मॉड्यूल अपफ्रंट का भी उल्लेख करना चाहिए था ; यह उस रेंडर सरणी के खंड पर "जूमिंग इन" पर एक अच्छा काम करता है जिसमें आप रुचि रखते हैं।


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