2009-08-24 11 views
13

ड्रूपल मॉड्यूल के लिए सबसे अच्छा एप्लिकेशन वर्कफ़्लो रूपक क्या है? PHP ढांचे में हम एमवीसी-शैली सोचते हैं। हम Drupal के अंदर कैसे सोचते हैं?ड्रूपल मॉड्यूल के आंतरिक कार्यों के लिए एक रूपक

Asumming मैं कुछ उपयोगकर्ता उन्मुख मॉड्यूल जैसे शॉप, कैटलॉग या फोरम लिख रहा हूं। जहां तक ​​मैं समझता हूं कि वहां कुछ या कुछ एमवीसी आधारित मॉड्यूल नहीं हैं। क्या मुझे आमतौर पर ड्रापल मॉड्यूल (उप-अनुप्रयोग के रूप में) फॉर्मों और हाइपरलिंक्स के माध्यम से जुड़े स्क्रीन के रूप में व्यवहार करना चाहिए या बेहतर तरीका है।

मेरा प्रश्न थोड़ा सा सट्टा हो सकता है, लेकिन मुझे आशा है कि कोई व्यक्ति मेरे को "स्क्रिप्ट" न केवल मॉडल सोचने के इरादे को साझा करेगा।

उत्तर

14

Presentation-abstraction-control (पीएसी) एक पैटर्न चीजों की Drupals सामान्य दृष्टिकोण का वर्णन करने का सबसे निकटतम मिलान हो रहा है, लेकिन मुझे लगता है कि यह कम या ज्यादा आकस्मिक है;)

के सौपानिक संगठन (कम या ज्यादा) स्वतंत्र पीएसी तीनों क्षेत्रों (देखें, नियंत्रक, मॉडल/अमूर्तता) में अपना हिस्सा कर रहे हैं, तीनों क्षेत्रों में अपना हिस्सा कर रहे हैं, ट्रिपलेट्स को आम तौर पर ड्रापल मॉड्यूल को आम छत के नीचे कम या ज्यादा स्वतंत्र एजेंटों के रूप में मैप किया जा सकता है।

Model-view-presenter ड्रूपल में विशेष रूप से विचलन में कुछ पहलुओं को भी परिभाषित करता है, जिसमें व्यू सीधे मॉडल से नहीं लेता है, लेकिन नियंत्रक से, ताकि जानकारी का प्रवाह सख्ती से View<>Controller/Presenter<>Model हो।

लेकिन ड्रूपल में चिंताओं को अलग करना अभी तक अनौपचारिक है और डेवलपर्स के कोडिंग अनुशासन पर बहुत निर्भर करता है, इसलिए लगातार पूरी तरह टूटने के किनारे पर (कई मॉड्यूल बहुत तर्क डाल रहे हैं थीमिंग परत में, दृश्य में इतनी कम या कम)।

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

अभी तक यह बहुत अच्छी तरह से काम किया है - Drupal के कोर और अधिक औपचारिक मिला, हर प्रमुख रिलीज के साथ, जबकि अभी भी ऑन जोड़ने के लिए लचीलापन रखने - देखते हैं अगर यह भविष्य में आयोजित करेगा जाने (या कम scriptish) ...

3

ड्रूपल में मॉड्यूल को कार्यों के संग्रह (ड्रूपल के "हुक" के कार्यान्वयन के रूप में सबसे अच्छा माना जाता है) जिसे इंजन में कुछ "घटनाएं" होती हैं। वे सख्ती से उपयोगकर्ता की घटनाएं नहीं हैं, बल्कि उदाहरण के लिए, लोडिंग के चरण (नोड लोड करने से पहले, नोड लोड करने के बाद, आदि ...), या जांच (इंजन अनुमतियों की जांच कर रहा है, क्या आप कुछ जोड़ना चाहते हैं?)।

हकीकत में, हुक ऐसे कार्य होते हैं जो ड्रोपल कार्यक्षमता का विस्तार करते हैं, ताकि आप ड्रोपल-प्रदत्त वाले लोगों के लिए अपना व्यवहार जोड़ सकें। तब आप उन कार्यों को निष्पादित करने की अनुमति देने के लिए उपयुक्त समय में उन हुक को बुलाएंगे।

तो फॉर्म या पृष्ठों के साथ कोई कड़ा संबंध नहीं है, और एमवीसी मॉडल जैसी किसी भी चीज़ से कोई संबंध नहीं है ... संस्करण 6 के रूप में, ड्रूपल ऑब्जेक्ट-आधारित नहीं है।

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

+2

फिर ड्रूपल ऐप एक सामान्य श्रेणी के रूप में ईवेंट-आधारित एप्लिकेशन की तरह लगता है। – AlexA

2

यह एक उच्च स्तरीय प्रश्न है, लेकिन मेरे पास एक स्टैब होगा।

Drupal एक सामग्री प्रबंधन ढांचे, एक अच्छा सिंहावलोकन here.

Drupal कुछ object orineted principals पर bassed है नहीं है। इसमें एमवीसी की तरह चिंताओं का पृथक्करण है। एक database abstraction layer है, एक तार्किक परत और theming system है।

एक ड्रूपल मॉड्यूल प्रोग्रामिंग करते समय अक्सर hooks में से एक या अधिक का उपयोग करने की सलाह दी जाती है। यह आपको ड्रोपल सिस्टम में अपने कोड को कसकर एकीकृत करने की अनुमति देगा। core में बहुत सारी कार्यक्षमताएं बनाई गई हैं, जिन्हें आप अपने मॉड्यूल में लीवरेज कर सकते हैं। इनका उपयोग करने से आपको उस कोड को कम कर दिया जाएगा जिसे आप लिखना चाहते हैं और साथ ही साथ अपना कोड अधिक ड्रोपलाइश कर सकते हैं।

3

ड्रोपल हुक को अधिकांश ओओ भाषाओं में श्रोताओं, या Observers कहा जाता है। हालांकि वे तकनीकी रूप से उस पैटर्न को अनुपालन करते हैं, लेकिन अधिकांश ओओ भाषाओं और वातावरण में आपको पॉलिश और परिपक्वता की अपेक्षा न करें। Drupals हुक अत्यधिक असंगत, उपयोग में सीमित या उपयोग में बहुत व्यापक हो सकता है।

श्रोताओं, हुक, ड्रूपल में सब कुछ के बारे में मुख्य वास्तुकला सिद्धांत हैं।

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