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

एप्लिकेशन
यह एप्लिकेशन फ़ोल्डर है और इसमें परियोजना का संपूर्ण स्रोत कोड शामिल है। इसमें ईवेंट, अपवाद और मिडलवेयर घोषणा शामिल हैं। एप्लिकेशन फ़ोल्डर में विभिन्न उप फ़ोल्डर शामिल हैं, जो नीचे दिए गए हैं -
कंसोल
कंसोल में लारवेल के लिए आवश्यक कारीगर कमांड शामिल हैं। इसमें एक निर्देशिका नाम शामिल हैCommands, जहां सभी आदेश उचित हस्ताक्षर के साथ घोषित किए जाते हैं। फ़ाइलKernal.php में घोषित आदेशों को कॉल करता है Inspire.php।

अगर हमें लारवेल में एक विशिष्ट कमांड को कॉल करने की आवश्यकता है, तो हमें इस निर्देशिका में उचित बदलाव करना चाहिए।
आयोजन
इस फ़ोल्डर में प्रोजेक्ट के लिए सभी ईवेंट शामिल हैं।

घटनाओं का उपयोग गतिविधियों को ट्रिगर करने, त्रुटियों या आवश्यक मान्यताओं को बढ़ाने और अधिक लचीलापन प्रदान करने के लिए किया जाता है। लारवेल एक निर्देशिका के तहत सभी घटनाओं को रखता है। शामिल डिफ़ॉल्ट फ़ाइल हैevent.php जहां सभी बुनियादी कार्यक्रम घोषित किए जाते हैं।
अपवाद
इस फ़ोल्डर में अपवादों को संभालने के लिए आवश्यक सभी विधियाँ हैं। इसमें फ़ाइल भी हैhandle.php जो सभी अपवादों को संभालता है।
एचटीटीपी
Httpफ़ोल्डर में नियंत्रक, मिडलवेयर और एप्लिकेशन अनुरोधों के लिए उप-फ़ोल्डर हैं। जैसा कि Laravel MVC डिजाइन पैटर्न का अनुसरण करता है, इस फ़ोल्डर में विशिष्ट निर्देशिकाओं के लिए परिभाषित मॉडल, नियंत्रक और विचार शामिल हैं।
Middleware उप-फ़ोल्डर में मिडिलवेयर तंत्र शामिल है, जिसमें प्रतिक्रिया और अनुरोध के बीच फिल्टर तंत्र और संचार शामिल है।
Requests उप-फ़ोल्डर में एप्लिकेशन के सभी अनुरोध शामिल हैं।
नौकरियां
Jobsनिर्देशिका लारवेल आवेदन के लिए कतारबद्ध गतिविधियों को बनाए रखती है। बेस क्लास सभी जॉब्स के बीच साझा किया जाता है और उन्हें एक छत के नीचे रखने के लिए एक केंद्रीय स्थान प्रदान करता है।
श्रोताओं
श्रोता घटना-आश्रित होते हैं और उनमें वे विधियाँ शामिल होती हैं जिनका उपयोग घटनाओं और अपवादों को संभालने के लिए किया जाता है। उदाहरण के लिए,login घोषित घटना में ए शामिल है LoginListener प्रतिस्पर्धा।
नीतियों
नीतियां PHP कक्षाएं हैं जिनमें प्राधिकरण तर्क शामिल हैं। लारवेल में इस उप फ़ोल्डर के अंदर नीति वर्गों के भीतर सभी प्राधिकरण तर्क बनाने की सुविधा शामिल है।
प्रदाताओं
इस फ़ोल्डर में कोर सर्वर के लिए घटनाओं को पंजीकृत करने और एक लारवेल एप्लिकेशन को कॉन्फ़िगर करने के लिए आवश्यक सभी सेवा प्रदाता शामिल हैं।
बूटस्ट्रैप
यह फ़ोल्डर सभी एप्लिकेशन बूटस्ट्रैप स्क्रिप्ट को संलग्न करता है। इसमें एक सब-फोल्डर होता हैcache, जिसमें एक वेब एप्लिकेशन को कैशिंग करने से जुड़ी सभी फाइलें शामिल हैं। आप फ़ाइल भी पा सकते हैंapp.php, जो बूटस्ट्रैप के लिए आवश्यक स्क्रिप्ट को इनिशियलाइज़ करता है।
कॉन्फ़िग
configफ़ोल्डर में विभिन्न विन्यास और संबद्ध पैरामीटर शामिल हैं जो लारवेल एप्लिकेशन के सुचारू संचालन के लिए आवश्यक हैं। कॉन्फिग फोल्डर के भीतर शामिल विभिन्न फाइलों को इमेज में दिखाया गया है। फ़ाइल नाम उनके साथ जुड़ी कार्यक्षमता के अनुसार काम करता है।

डेटाबेस
जैसा कि नाम से पता चलता है, इस निर्देशिका में डेटाबेस फ़ंक्शंस के लिए विभिन्न पैरामीटर शामिल हैं। इसमें तीन उप-निर्देशिकाएं शामिल हैं जैसे नीचे दिए गए हैं -
Seeds - इसमें यूनिट परीक्षण डेटाबेस के लिए उपयोग की जाने वाली कक्षाएं शामिल हैं।
Migrations - यह फ़ोल्डर वेब एप्लिकेशन में उपयोग होने वाले डेटाबेस को माइग्रेट करने के लिए क्वेरीज़ में मदद करता है।
Factories - इस फ़ोल्डर का उपयोग बड़ी संख्या में डेटा रिकॉर्ड बनाने के लिए किया जाता है।
जनता
यह रूट फ़ोल्डर है जो लारवेल एप्लिकेशन को इनिशियलाइज़ करने में मदद करता है। इसमें निम्न फाइलें और फ़ोल्डर्स शामिल हैं -
.htaccess - यह फाइल सर्वर कॉन्फ़िगरेशन देती है।
javascript and css - इन फाइलों को संपत्ति माना जाता है।
index.php - यह फ़ाइल एक वेब अनुप्रयोग के प्रारंभ के लिए आवश्यक है।
साधन
संसाधन निर्देशिका में वे फाइलें होती हैं जो आपके वेब एप्लिकेशन को बढ़ाती हैं। इस निर्देशिका में शामिल किए गए उप-फ़ोल्डर्स और उनके उद्देश्य को नीचे समझाया गया है -
assets - संपत्ति फ़ोल्डर में LESS और SCSS जैसी फाइलें शामिल हैं, जो वेब एप्लिकेशन को स्टाइल करने के लिए आवश्यक हैं।
lang - इस फ़ोल्डर में स्थानीयकरण या आंतरिककरण के लिए कॉन्फ़िगरेशन शामिल है।
views - दृश्य एचटीएमएल फाइलें या टेम्प्लेट हैं जो अंत उपयोगकर्ताओं के साथ बातचीत करते हैं और एमवीसी वास्तुकला में एक प्राथमिक भूमिका निभाते हैं।
देखें कि संपत्ति निर्देशिका होने के बजाय संसाधन निर्देशिका को समतल किया जाएगा। उसी का सचित्र प्रतिनिधित्व नीचे दिखाया गया है -

भंडारण
यह वह फ़ोल्डर है जो सभी लॉग और आवश्यक फ़ाइलों को संग्रहीत करता है जिनकी आवश्यकता अक्सर होती है जब एक लारवेल परियोजना चल रही होती है। इस निर्देशिका में शामिल किए गए उप-फ़ोल्डर और उनका उद्देश्य नीचे दिया गया है -
app - इस फोल्डर में वे फाइलें होती हैं जिन्हें उत्तराधिकार में कहा जाता है।
framework - इसमें सत्र, कैश और विचार शामिल होते हैं जिन्हें अक्सर कहा जाता है।
Logs - इस उप फ़ोल्डर में सभी अपवाद और त्रुटि लॉग ट्रैक किए गए हैं।
परीक्षण
इस निर्देशिका में सभी यूनिट परीक्षण मामलों को शामिल किया गया है। नामकरण परीक्षण केस कक्षाओं के नामकरण सम्मेलन हैcamel_case और वर्ग की कार्यक्षमता के अनुसार सम्मेलन का अनुसरण करता है।
विक्रेता
लारवेल पूरी तरह से कंपोजर निर्भरता पर आधारित है, उदाहरण के लिए लारवेल सेटअप को स्थापित करने के लिए या तीसरे पक्ष के पुस्तकालयों को शामिल करने के लिए, वेंडर फ़ोल्डर में सभी कंपोजर निर्भरताएं शामिल हैं।
उपर्युक्त फाइलों के अलावा, लारवेल में कुछ अन्य फाइलें भी शामिल हैं, जो विभिन्न कार्यात्मकताओं जैसे कि GitHub कॉन्फ़िगरेशन, पैकेज और तीसरे पक्ष के पुस्तकालयों में प्राथमिक भूमिका निभाती हैं।
एप्लिकेशन संरचना में शामिल फाइलें नीचे दी गई हैं -
