Drupal 8 में कस्टम इकाई कैसे बनाएं [बंद]


10

मेरे पास Drupal 7 पर एक बड़ी निजी परियोजना है जिसमें कई कस्टम इकाइयां हैं। मैं ड्रुपल 8 में प्रोजेक्ट को अपग्रेड करना शुरू करना चाहता हूं, लेकिन पूरी तरह से लिखा गया ड्रुपल 8 कोर मेरे लिए बहुत बड़ा है, ताकि मुझे बिना किसी डॉक्यूमेंट के अपना सिर मिल सके (+ सिम्फनी मेरे लिए पूरी तरह से अनजान है, मैं सिर्फ एक साधारण ड्रुपल-ओनली लड़का हूं) ।

मैंने कुछ मुख्य मॉड्यूल कोड को देखकर, लेकिन बिना किसी सफलता के एक कस्टम इकाई बनाने की कोशिश की।

क्या आप मुझे Drupal 8 में कस्टम संस्थाओं के बारे में कुछ लेखों की ओर इशारा कर सकते हैं (मैं एक भी नहीं ढूंढ पाया हूं) या मुझे कुछ बुनियादी चरण-दर-चरण मार्गदर्शिका दें?

धन्यवाद।

entities  8 

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

एक तरफ के रूप में, यदि आप किसी भी सिम्फनी को नहीं जानते हैं तो आप शायद अपने डी 7 ज्ञान को डी 8 पर लागू करना मुश्किल पाएंगे। चीजें काफी हद तक बदल गई हैं (जैसा कि मुझे यकीन है कि आप पहले से ही जानते हैं)। मैं दृढ़ता से सिम्फनी पुस्तक के अधिक से अधिक पढ़ने की सिफारिश करूंगा क्योंकि आप अपनी यात्रा को शुरू करने से पहले कर सकते हैं; उस तरह की ग्राउंडिंग होने से संक्रमण बहुत हद तक शांत हो जाएगा, मुझ पर भरोसा करें। एक और एक तरफ के रूप में, मैंने पाया श्रेणी और कोर संपर्क मॉड्यूल में संदेश संस्थाओं सीखने के लिए बहुत अच्छा प्रारंभिक बिंदु होने के लिए
क्लाइव

@ क्‍लाइफ के अलावा Drupal 8 में Entity API के पास लगभग कुछ भी सिम्‍फनी के साथ करने के लिए नहीं है, इसलिए मुझे नहीं लगता कि यह प्रासंगिक है। अन्यथा प्रश्न बहुत व्यापक होने से सहमत हैं, लेकिन मैंने अवलोकन देने की कोशिश की, अधिक विशिष्ट प्रश्नों का उत्तर और अधिक विस्तार से दिया जा सकता है। और यह एक शुरुआती बिंदु होने में मदद करता है, क्योंकि यह बहुत स्पष्ट नहीं है यदि आप डी 8 नहीं जानते हैं।
बर्दिर

@ बर्डिर का मेरा मतलब था डी 7 -> डी 8 सामान्य रूप से, विशेष रूप से संस्थाओं के लिए नहीं। उदाहरण के लिए, सिम्फनी रूटिंग और सेवाओं के बारे में जानना, कोर कोड को समझना आसान बनाता है। महान लेख वैसे, कोई कारण अब भी IMO इस सवाल का बंद करने के बारे में सोचने के लिए, यह एक बहुमूल्य संसाधन है (भले ही व्यापक पक्ष पर एक बालक है)
क्लाइव

जवाबों:


13

मैं यहाँ Entity API प्रलेखन पर काम कर रहा हूँ: https://drupal.org/developing/api/entity

विस्तार से जवाब देने के लिए सवाल बहुत बड़ा है, और यह इस बात पर निर्भर करता है कि आपको सामग्री या कॉन्फिग एंटिटी की आवश्यकता है या नहीं। यह मानते हुए कि आप चाहते हैं कि सामग्री इकाइयाँ (डेटाबेस में संग्रहीत, फ़ील्ड / संशोधन योग्य हो सकती हैं / ..., ऊपर दिए गए लिंक में विवरण), आपको कुछ ऐसा करने की ज़रूरत है, ऊपर लिंक किया गया दस्तावेज़ अंततः ट्यूटोरियल सहित, प्रत्येक चरण को कवर करेगा, अभी , यह केवल पहले चरण को कवर करता है।

  1. एक इकाई वर्ग प्रदान करें और इसे एक इकाई के रूप में उजागर करने के लिए आवश्यक एनोटेशन जोड़ें।
  2. आवश्यक तालिका प्रदान करें, यदि आपके पास पहले से ही आपका 7.x स्कीमा है, तो आपको बहुत कुछ बदलने की आवश्यकता नहीं है, लेकिन यदि आपकी भाषा में अनुवाद हो सकता है, तो आप एक यूआईडी और संभवतः लैंगकोड कॉलम जोड़ सकते हैं। चरण में लिंक नोड उदाहरण देखें यदि आप कुछ आधार फ़ील्ड (गुण) अनुवाद योग्य या संशोधन योग्य बनाना चाहते हैं, तो आपको वर्तमान में आवश्यक तालिकाओं को स्वयं प्रदान करना होगा।
  3. अपने आधारभूत परिभाषा () विधि में आधार क्षेत्र परिभाषाएँ प्रदान करें। । ध्यान दें कि यह काम करने का तरीका https://drupal.org/node/2047229 (सरणियों से कक्षाओं तक) में बदल जाएगा ।
  4. आवश्यक तर्क / पद सहेजें / लोड / हटाएं विधियों को लागू करें यदि आपके पास कस्टम तर्क है जो एक इकाई को बचाने से पहले होने की आवश्यकता है (जैसे परिवर्तित टाइमस्टैम्प को अपडेट करना)।
  5. यदि आपके पास गैर-तुच्छ एक्सेस लॉजिक है, तो एक एक्सेस कंट्रोलर को लागू करें और checkAccess () और checkCreateAccess () विधियों को ओवरराइड करें या अपने एनोटेशन में admin_permission को निर्दिष्ट करें यदि आपके पास एक एकल अनुमति है जो पूर्ण एक्सेस की अनुमति देती है।
  6. यह अनुशंसा की जाती है कि आपके तकनीकी वर्ग (जैसे नोड के लिए NodeInterface) के लिए एक इंटरफ़ेस प्रदान करने के लिए तकनीकी रूप से आवश्यक नहीं है, जिसमें आपके आधार क्षेत्रों के लिए उपयोगी (आमतौर पर / सेट / isSomething ()) विधियाँ शामिल हैं, ताकि आप इंटरफ़ेस पर संकेत टाइप कर सकें उन तरीकों के लिए स्वतः पूर्ण प्राप्त करें।

आपको जो चाहिए, उसके आधार पर, आगे के कदम भी होंगे, जैसे आवश्यक रूपों को परिभाषित करना, संभवतः एक रेंडर नियंत्रक और इसी तरह, लेकिन उन लोगों को संभवतः अलग प्रश्न होने चाहिए यदि आपको अधिक जानकारी की आवश्यकता है।

टिप्पणियाँ:

  • कॉन्फ़िगरेशन इकाइयाँ मूल रूप से समान हैं, सिवाय आपको कॉन्फ़िगरेशन स्टोरेज कंट्रोलर का उपयोग करने की आवश्यकता के ( https://drupal.org/node/2119905 यह आसान बना देगा), आपको टेबल स्कीमा (स्पष्ट रूप से) को परिभाषित करने की आवश्यकता नहीं है, लेकिन आपको प्रदान करने की आवश्यकता है एक विन्यास स्कीमा फ़ाइल, उदाहरण के लिए टैक्सोनॉमी वोकैबुलरीज़ या नोड प्रकारों के लिए देखें।
  • सामग्री संस्थाओं के पास अपने आधार क्षेत्र सार्वजनिक या संरक्षित गुणों के रूप में परिभाषित नहीं होते हैं, इसके बजाय, वे स्वचालित रूप से मूल्यों और फ़ील्ड गुणों में प्रबंधित होते हैं। उन्हें या तो प्राप्त करें () / सेट () या संबंधित मैजिक विधियों के माध्यम से एक्सेस करें। ($ नोड-> शीर्षक $ नोड के बराबर है -> ('शीर्षक'))।
  • प्रलेखन पर मदद बहुत स्वागत होगा। मैंने अपनी पसंद की सामग्री / संरचना के लिए एक मूल रूपरेखा तैयार की है, इसलिए बस एक नया पृष्ठ बनाएं और आरंभ करें जैसे कि मुझे सरलीकृत ट्यूटोरियल होने में भी दिलचस्पी है, कॉन्फ़िगर संस्थाओं के लिए, यहां एक पहले से ही है कि मैं तैयार होने पर इकाई के दस्तावेज पर आ जाएगा: https://drupal.org/node/1809494
  • यदि आप कार्य उदाहरण देखना चाहते हैं, तो कोर में बड़ी संख्या में सामग्री इकाई कार्यान्वयन है: नोड, उपयोगकर्ता, शब्द, टिप्पणी, कस्टमब्लॉक ... ... जैसा कि चरण 1 में जुड़ा लेख बताता है, आप हमेशा प्रदान किए गए इकाई प्रकार पा सकते हैं। एंटिटी नेमस्पेस में एक मॉड्यूल।
  • @fago ने इस सप्ताह के अंत में DrupalCamp वियना में Entity API के बारे में एक प्रस्तुति दी , इसमें जो कुछ मैंने यहां लिखा है, उसमें बहुत कुछ शामिल है।

1
ड्रुपल कोड जनरेटर काफी उपयोगी है - >> github.com/Chi-teck/drupal-code-generator
rémy

1
drupalconsole.com - एक अच्छा सहायक ( बायलरप्लेट कोड उत्पन्न करने के लिए एक उपकरण, ड्रुपल के साथ बातचीत और डिबग।)
दूधोवस्की
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.