मैं Drupal 7 से Drupal 8 में एक मॉड्यूल पोर्ट कर रहा हूं। इस मॉड्यूल की कॉन्फ़िगरेशन सेटिंग्स में मुझे वर्तमान में मौजूद फ़ील्ड-प्रकारों की सूची प्राप्त करने की आवश्यकता है।
Drupal 7 में, यह field_info_field_types()
फ़ंक्शन का उपयोग करके हासिल किया गया था ।
Drupal 8 (8.0.0-rc3) में, मुझे एक त्रुटि मिलती है "फ़ंक्शन मौजूद नहीं है", Drupal API संदर्भ सहायता पृष्ठ द्वारा बताई गई जानकारी के बावजूद , स्पष्ट रूप से पुराना है।
फिर जांच करने पर मुझे एक DrupalContrib पृष्ठ मिला , जहां फ़ंक्शन को पदावनत घोषित किया गया है, और अब उपयोग करने का प्रस्ताव है Drupal::service('plugin.manager.entity.field.field_type')->getDefinitions()
।
लेकिन इसका उपयोग करने से एक और त्रुटि "अज्ञात सेवा plugin.manager.entity.field.field_type", सौभाग्य से सुझाव से जुड़ी है "क्या आपका मतलब plugin.manager.field.field_type है?"
इसलिए मैंने उपयोग करने की कोशिश की Drupal::service('plugin.manager.field.field_type')->getDefinitions()
और वाह: मुझे फील्ड-प्रकारों की अपेक्षित सरणी मिली।
लेकिन प्रत्येक सरणी सदस्य (एक फ़ील्ड-प्रकार) अब एक ऑब्जेक्ट (एक चाइल्ड एरे के बजाय) है, और मैं जो डेटा देख रहा हूं वह संरक्षित गुणों के भीतर नेस्टेड है, इसलिए मैं उन्हें एक्सेस नहीं कर सकता।
इस स्तर पर, मैं फंस गया हूँ। मैंने माना कि इन डेटा के माध्यम से नेविगेट करने के लिए मैं कुछ वर्ग का विस्तार कर सकता हूं, लेकिन कोई भाग्य नहीं: मैं विशेष रूप से यह भी पता नहीं लगा सका कि ड्रुपल 8 में कौन सा घटक है जहां फ़ील्ड-प्रकार की परिभाषाएं केंद्रीकृत हैं।