logo

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - नया लेआउट बिल्डर अनुभव❗

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - स्टाइलिश, कस्टमाइज़ेबल ब्लॉक टाइप्स: स्लाइडशो, टैब्स, कार्ड्स, एकॉर्डियन्स और कई अन्य। बैकग्राउंड, DOM बॉक्स, जावास्क्रिप्ट प्लगइन्स के लिए बिल्ट-इन सेटिंग्स। आज ही लेआउट बिल्डिंग का भविष्य अनुभव करें।

डेमो EBT मॉड्यूल्स EBT मॉड्यूल्स डाउनलोड करें

❗एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - नया पैराग्राफ्स अनुभव

एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - एनालॉजिकल पैराग्राफ आधारित मॉड्यूल्स का सेट।

डेमो EPT मॉड्यूल्स EPT मॉड्यूल्स डाउनलोड करें

स्क्रॉल

1.3. अपना PHP फ्रेमवर्क तैयार करना

07/10/2025, by Ivan

फ्रेमवर्क बनाने के कई तरीके हैं — कुछ डेवलपर्स जटिल फ्रेमवर्क पसंद करते हैं, जबकि कुछ साधारण और हल्के। इस लेख-श्रृंखला में हम एक ऐसा फ्रेमवर्क बनाएंगे जो उपयोग में आसान और समझने में सरल होगा।

ये लेख आपको अपना स्वयं का PHP फ्रेमवर्क बनाने में मदद करेंगे, जो इंटरनेट-магазин (ऑनलाइन स्टोर) जैसी परियोजनाओं के लिए उपयुक्त होगा, लेकिन साथ ही इतना लचीला भी होगा कि आप उसमें नई विशेषताएँ जोड़ सकें। इस श्रृंखला का मुख्य उद्देश्य — किसी भी CMS के लिए अपना खुद का फ्रेमवर्क बनाना सीखना है।

पैटर्न्स (Patterns)

फ्रेमवर्क विकसित करने के लिए कई डिज़ाइन पैटर्न का उपयोग किया जाता है। पैटर्न्स — सॉफ़्टवेयर डेवलपमेंट में बार-बार आने वाली समस्याओं के लिए सिद्ध और पुन: उपयोग योग्य समाधान हैं। इस फ्रेमवर्क में हम निम्नलिखित पैटर्न्स का उपयोग करेंगे:

  • MVC (Model-View-Controller)
  • Registry
  • Singleton

मॉडल–व्यू–कंट्रोलर (MVC)

MVC हमारे फ्रेमवर्क की नींव है। यह यूज़र इंटरफ़ेस (View) और एप्लिकेशन लॉजिक (Controller & Model) को अलग करने की अनुमति देता है। View यूज़र से इंटरैक्ट करता है, Controller अनुरोध को संसाधित करता है और Model (डेटा लेयर) के साथ काम करता है।

उदाहरण के लिए, जब उपयोगकर्ता “Add to Cart” बटन दबाता है (View से), Controller इस क्रिया को संभालता है, “Cart” मॉडल से संपर्क करता है और उत्पाद को कार्ट में जोड़ देता है। फिर Controller मॉडल से डेटा प्राप्त करता है (जैसे कि कुल आइटम की संख्या) और उसे View में दिखाता है।

MVC

हम MVC पर आधारित अपना खुद का फ्रेमवर्क बनाएंगे। डेटा Model में संग्रहीत होगा, जो डेटाबेस की तालिकाओं से मेल खाता है। प्रत्येक मॉडल में वही फ़ील्ड होंगे जो संबंधित डेटाबेस तालिका में हैं।

View वह हिस्सा होगा जो परिणाम को यूज़र को दिखाएगा। इसे और स्पष्ट रूप से समझाने के लिए, हम अपने MVC डायग्राम का विस्तारित संस्करण देख सकते हैं:

MVC scheme

रजिस्ट्री (Registry)

Registry पैटर्न फ्रेमवर्क के सभी ऑब्जेक्ट्स को एक ही स्थान पर संग्रहीत और प्रबंधित करने की अनुमति देता है। इसकी आवश्यकता इसलिए होती है क्योंकि MVC में कंट्रोलर और मॉडल दोनों को कई सामान्य संसाधनों तक पहुँच चाहिए — जैसे डेटाबेस, टेम्पलेट सिस्टम, ईमेल सिस्टम आदि।

Registry उन सभी ऑब्जेक्ट्स का “संग्रह” रखता है जिनकी एप्लिकेशन को आवश्यकता होती है। किसी भी स्थान से Registry को बुलाया जा सकता है और उसमें से आवश्यक ऑब्जेक्ट्स प्राप्त किए जा सकते हैं।

उदाहरण के लिए, कंट्रोलर को डेटाबेस की आवश्यकता है, और टेम्पलेट इंजन को फाइल मैनेजर की। Registry यह सुनिश्चित करता है कि ये सब एक केंद्रीकृत स्थान पर उपलब्ध हों।

MVC

फ्रेमवर्क सीधे रजिस्ट्री के साथ इंटरैक्ट करता है। रजिस्ट्री के अंदर मौजूद ऑब्जेक्ट्स आपस में भी बातचीत कर सकते हैं। उदाहरण के लिए, टेम्पलेट मैनेजर फाइल मैनेजर से जुड़ा हो सकता है, या ईमेल सिस्टम ईमेल टेम्पलेट्स से।

सिंगलटन (Singleton)

सिंगलटन (या “एकल वर्ग”) सबसे सरल और व्यापक रूप से उपयोग किए जाने वाले पैटर्न्स में से एक है। इसका उद्देश्य है — किसी क्लास का केवल एक ही उदाहरण पूरे एप्लिकेशन में मौजूद हो और वह हर जगह से सुलभ हो।

यह पैटर्न तब उपयोगी होता है जब किसी क्लास का केवल एक ही उद्देश्य हो, जैसे — डेटाबेस कनेक्शन बनाना। ताकि एप्लिकेशन के सभी हिस्से उसी एक ही कनेक्शन का उपयोग करें।

फ्रेमवर्क की संरचना

अब जब हमने बुनियादी पैटर्न तय कर लिए हैं, तो अगला कदम है — अपने फ्रेमवर्क की फ़ोल्डर संरचना तैयार करना। हमें यह संरचना बनानी होगी ताकि:

  • मॉडल्स (Models) को एक स्थान पर रखा जा सके,
  • व्यूज़ (Views) के लिए अलग-अलग थीम/टेम्पलेट्स का समर्थन किया जा सके,
  • कंट्रोलर्स (Controllers) को मॉड्यूल के अनुसार विभाजित किया जा सके,
  • एडमिन कंट्रोलर्स को यूज़र कंट्रोलर्स से अलग रखा जा सके,
  • रजिस्ट्री (Registry) और उसके ऑब्जेक्ट्स को सुव्यवस्थित रूप से संग्रहीत किया जा सके,
  • फ़ाइल अपलोड्स, थर्ड-पार्टी लाइब्रेरीज़ और अन्य कोड को स्पष्ट रूप से अलग-अलग फ़ोल्डर्स में रखा जा सके।

इस प्रकार हमारे फ्रेमवर्क की फ़ोल्डर संरचना कुछ इस तरह होगी (नाम अंग्रेज़ी में रखे जाएंगे, जैसा कि PHP में सामान्य है):

  • Models
  • Views
    • View A
    • Templates
    • Images
    • JavaScript
  • Controllers
    • Controller A
      • ControllerA
      • ControllerAAdmin
  • Registry
    • Objects
    • Database Objects
  • Assets
  • Uploads
    • (जब हम उत्पादों और छवियों को जोड़ेंगे, यह फ़ोल्डर बढ़ेगा)
  • Libraries
  • Miscellaneous