इस अध्याय में हम Laravel फ्रेमवर्क की संरचना को विस्तार से समझेंगे। एक सफल वेब एप्लिकेशन के निर्माण के लिए, यह महत्वपूर्ण है कि आप Laravel के डायरेक्टरी स्ट्रक्चर और महत्वपूर्ण फाइलों के बारे में जानें। Laravel एक MVC (Model-View-Controller) आर्किटेक्चर का पालन करता है, जो कोड को व्यवस्थित और प्रबंधित करने में मदद करता है। इस अध्याय में, हम विभिन्न डायरेक्टरीज़ और उनकी भूमिकाओं के साथ-साथ प्रमुख फाइलों और उनकी उपयोगिता के बारे में चर्चा करेंगे। इस ज्ञान के साथ, आप Laravel एप्लिकेशन को बेहतर ढंग से नेविगेट कर सकेंगे और अपने प्रोजेक्ट्स को अधिक कुशलता से विकसित कर पाएंगे। आइए, Laravel की संरचना को गहराई से समझने की इस यात्रा की शुरुआत करें।
डायरेक्टरी संरचना (Directory Structure)
Laravel की डायरेक्टरी संरचना सुव्यवस्थित और स्पष्ट रूप से परिभाषित होती है, जो डेवलपर्स को कोड को व्यवस्थित और प्रबंधित करने में मदद करती है। आइए, हम प्रत्येक डायरेक्टरी और उसकी भूमिका को समझें:
1. app/
- यहाँ आपके एप्लिकेशन का कोर कोड स्थित होता है।
- इसमें MVC (Model-View-Controller) की संरचना शामिल है:
Http/Controllers/
: आपके सभी कंट्रोलर्स यहाँ स्थित होते हैं।Models/
: आपके एप्लिकेशन के मॉडल्स यहाँ स्थित होते हैं।Http/Middleware/
: मिडलवेयर फाइलें जो HTTP अनुरोधों को हैंडल करती हैं।
2. bootstrap/
- यहाँ एप्लिकेशन को बूटस्ट्रैप करने से संबंधित फाइलें स्थित होती हैं।
cache/
: कैश फाइलें जो फ्रेमवर्क द्वारा उपयोग की जाती हैं।
3. config/
- यहाँ एप्लिकेशन की सभी कॉन्फ़िगरेशन फाइलें स्थित होती हैं।
- विभिन्न कॉन्फ़िगरेशन फाइलें जैसे
app.php
,database.php
, और अन्य।
4. database/
- यहाँ डेटाबेस से संबंधित फाइलें स्थित होती हैं।
migrations/
: डेटाबेस माइग्रेशन फाइलें।seeds/
: डेटाबेस सीडिंग के लिए फाइलें।
5. public/
- यह एप्लिकेशन का एंट्री पॉइंट होता है।
index.php
: सर्वर द्वारा एक्सेस की जाने वाली मुख्य फाइल।- एसेट्स जैसे कि CSS, JavaScript, और इमेजेज भी यहाँ स्थित होते हैं।
6. resources/
- यहाँ एप्लिकेशन के व्यूज़ और अन्य संसाधन स्थित होते हैं।
views/
: Blade टेम्प्लेट्स यहाँ स्थित होते हैं।lang/
: स्थानीयकरण फाइलें।assets/
: अनकम्पाइल्ड CSS और JavaScript फाइलें।
7. routes/
- यहाँ एप्लिकेशन के सभी रूट्स स्थित होते हैं।
- मुख्य फाइलें:
web.php
: वेब रूट्स।api.php
: API रूट्स।
8. storage/
- यहाँ विभिन्न प्रकार की फाइलें स्टोर होती हैं।
logs/
: लॉग फाइलें।app/
: उपयोगकर्ता द्वारा अपलोड की गई फाइलें।framework/
: फ्रेमवर्क से संबंधित कैश और सत्र फाइलें।
9. tests/
- यहाँ एप्लिकेशन की टेस्ट फाइलें स्थित होती हैं।
Feature/
: फीचर टेस्ट्स।Unit/
: यूनिट टेस्ट्स।
10. vendor/
- यहाँ सभी Composer डिपेंडेंसीज़ स्थित होती हैं।
- Laravel और इसके पैकेजेज़।
11. .env
- यह फाइल एप्लिकेशन की एनवायरनमेंट सेटिंग्स को परिभाषित करती है।
- डेटाबेस कनेक्शन, एप्लिकेशन की कुंजियाँ, और अन्य संवेदनशील कॉन्फ़िगरेशन।
12. artisan
- यह Laravel का कमांड-लाइन इंटरफ़ेस है।
- विभिन्न कमांड्स जैसे माइग्रेशन, सीडिंग, और अन्य ऑपरेशन्स को चलाने के लिए।
यह Laravel की डायरेक्टरी संरचना का संक्षिप्त विवरण है। इन डायरेक्टरीज़ और फाइलों की समझ से, आप अपने Laravel प्रोजेक्ट को बेहतर ढंग से नेविगेट कर सकेंगे और अपने एप्लिकेशन को अधिक कुशलता से विकसित कर सकेंगे।
महत्वपूर्ण फ़ाइलें (Important Files)
Laravel फ्रेमवर्क में कुछ महत्वपूर्ण फाइलें होती हैं जिनका आपके एप्लिकेशन की कॉन्फ़िगरेशन, रूटिंग, और कार्यप्रणाली में महत्वपूर्ण योगदान होता है। इन फाइलों की समझ से आप अपने प्रोजेक्ट को बेहतर ढंग से प्रबंधित कर सकेंगे। आइए, हम इन महत्वपूर्ण फाइलों पर एक नज़र डालें:
1. .env
- वर्णन: यह फाइल आपके एप्लिकेशन की एनवायरनमेंट सेटिंग्स को परिभाषित करती है।
- उपयोग: डेटाबेस कनेक्शन, मेल सर्वर, एप्प URL, और अन्य संवेदनशील कॉन्फ़िगरेशन।
- उदाहरण:
APP_NAME=Laravel APP_ENV=local APP_KEY=base64:your-app-key APP_DEBUG=true APP_URL=http://localhostDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your_database DB_USERNAME=your_username DB_PASSWORD=your_password
2. config/app.php
- वर्णन: यह फाइल एप्लिकेशन की मुख्य कॉन्फ़िगरेशन सेटिंग्स को परिभाषित करती है।
- उपयोग: टाइमज़ोन, लोकैल, सर्विस प्रोवाइडर्स, और एलियासेस।
- उदाहरण:
'timezone' => 'UTC' , 'locale' => 'en' , 'fallback_locale' => 'en' , 'key' => env ( 'APP_KEY' ), 'providers' => [ // Laravel Framework Service Providers... Illuminate\Auth\AuthServiceProvider :: class , // ... ], 'aliases' => [ 'App' => Illuminate\Support\Facades\App :: class , 'DB' => Illuminate\Support\Facades\DB:: class , // ... ],
3. routes/web.php
- वर्णन: यह फाइल वेब रूट्स को परिभाषित करती है।
- उपयोग: एप्लिकेशन के लिए HTTP रूट्स को परिभाषित करना।
- उदाहरण:
Route :: get ( '/' , function () { return view ( 'welcome' ); }); Route :: get ( '/about' , function () { return view ( 'about' ); }); Route :: get ( '/contact' , 'ContactController@show' );
4. app/Http/Controllers/
- वर्णन: इस डायरेक्टरी में आपके सभी कंट्रोलर्स स्थित होते हैं।
- उपयोग: एप्लिकेशन के विभिन्न हिस्सों के लिए लॉजिक को संभालना।
- उदाहरण:
namespace App \ Http \ Controllers ; use Illuminate \ Http \ Request ; class HomeController extends Controller { public function index () { return view ( 'home' ); } }
5. resources/views/
- वर्णन: इस डायरेक्टरी में आपके सभी व्यू फाइलें स्थित होती हैं।
- उपयोग: HTML टेम्प्लेट्स को संभालना और प्रदर्शित करना।
- उदाहरण:
<!-- resources/views/welcome.blade.php --> <!DOCTYPE html> <html> <head> <title>Welcome to Laravel</title> </head> <body> <h1>{{ $title }}</h1> <p>Welcome to Laravel Tutorial in Hindi.</p> </body> </html>
6. database/migrations/
- वर्णन: इस डायरेक्टरी में डेटाबेस माइग्रेशन फाइलें स्थित होती हैं।
- उपयोग: डेटाबेस स्कीमा को प्रबंधित और संस्करणित करना।
- उदाहरण:
use Illuminate \ Database \ Migrations \ Migration ; use Illuminate \ Database \ Schema \ Blueprint ; use Illuminate \ Support \ Facades \ Schema ; class CreateUsersTable extends Migration { public function up () { Schema :: create ( 'users' , function (Blueprint $table ) { $table -> id (); $table -> string ( 'name' ); $table -> string ( 'email' )-> unique (); $table -> timestamp ( 'email_verified_at' )-> nullable (); $table -> string ( 'password' ); $table -> rememberToken (); $table -> timestamps (); }); } public function down () { Schema :: dropIfExists ( 'users' ); } }
7. artisan
- वर्णन: यह Laravel का कमांड-लाइन इंटरफ़ेस है।
- उपयोग: विभिन्न कमांड्स जैसे माइग्रेशन, सीडिंग, और अन्य ऑपरेशन्स को चलाने के लिए।
- उदाहरण:
php artisan migrate php artisan serve
इन महत्वपूर्ण फाइलों की समझ से आप Laravel एप्लिकेशन को बेहतर ढंग से कॉन्फ़िगर और प्रबंधित कर सकेंगे। इन फाइलों का सही उपयोग करने से आप अपने प्रोजेक्ट्स को अधिक कुशलता और आसानी से विकसित कर सकते हैं।