Eloquent ORM क्या है और इसकी आवश्यकता क्यों है?
Eloquent ORM (Object-Relational Mapping) PHP फ्रेमवर्क Laravel में डेटाबेस के साथ काम करने के लिए एक अंतर्निहित लाइब्रेरी है। यह Active Record पैटर्न का उपयोग करके रिलेशनल डेटाबेस (MySQL, PostgreSQL, SQLite, SQL Server) के साथ इंटरैक्ट करने का एक सुंदर और सहज तरीका प्रदान करता है।
Eloquent की आवश्यकता क्यों है?
- SQL एब्स्ट्रैक्शन: कच्चे SQL क्वेरी लिखने के बजाय, आप PHP ऑब्जेक्ट्स के साथ काम करते हैं। इससे कोड साफ, पढ़ने में आसान और अधिक सुरक्षित हो जाता है।
- Active Record: Eloquent का हर मॉडल डेटाबेस में एक टेबल को दर्शाता है। मॉडल का एक इंस्टेंस उस टेबल की एक पंक्ति होती है। आप ऑब्जेक्ट के प्रॉपर्टीज के साथ काम करके डेटा को पढ़, बदल और सेव कर सकते हैं।
- SQL इंजेक्शन से सुरक्षा: Eloquent PDO (PHP Data Objects) का उपयोग प्रिपेयर्ड क्वेरीज के साथ करता है, जो स्वचालित रूप से यूजर इनपुट को एस्केप करता है।
- रिलेशनशिप: टेबल्स के बीच संबंधों (एक-से-एक, एक-से-अनेक, अनेक-से-अनेक आदि) को आसानी से परिभाषित और उपयोग करें।
- कलेक्शन: क्वेरी के परिणाम कलेक्शन के रूप में मिलते हैं - शक्तिशाली ऑब्जेक्ट्स जो डेटा प्रोसेसिंग के लिए कई उपयोगी मेथड प्रदान करते हैं (map, filter, reduce, pluck आदि)।
- म्यूटेटर और एक्सेसर: डेटाबेस में सेव करते समय (म्यूटेटर) या पढ़ते समय (एक्सेसर) डेटा को बदलने की अनुमति देते हैं।
Eloquent सिर्फ एक लाइब्रेरी नहीं है, बल्कि Laravel इकोसिस्टम का एक मूलभूत हिस्सा है। इस फ्रेमवर्क पर प्रभावी डेवलपमेंट के लिए Eloquent को समझना आवश्यक है।
इंस्टॉलेशन
Eloquent ORM Laravel फ्रेमवर्क के साथ स्वचालित रूप से इंस्टॉल हो जाता है। यदि आप एक नया Laravel प्रोजेक्ट बना रहे हैं, तो Eloquent पहले से ही उपयोग के लिए तैयार है।
Composer के माध्यम से इंस्टॉलेशन (यदि आप Laravel का उपयोग कर रहे हैं):
composer create-project laravel/laravel example-app
cd example-app
Laravel के बिना Eloquent इंस्टॉलेशन (Standalone):
आप Laravel के बाहर भी Eloquent का उपयोग कर सकते हैं, उदाहरण के लिए अपने खुद के प्रोजेक्ट में। इसके लिए आपको illuminate/database पैकेज इंस्टॉल करना होगा और डेटाबेस कनेक्शन कॉन्फ़िगर करना होगा।
composer require illuminate/database
composer require illuminate/events // मॉडल इवेंट्स के लिए (वैकल्पिक)
कनेक्शन सेटअप का उदाहरण (standalone):
<?php
require 'vendor/autoload.php';
use Illuminate\Database\Capsule\Manager as Capsule;
$capsule = new Capsule;
$capsule->addConnection([
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'your_database',
'username' => 'your_username',
'password' => 'your_password',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
]);
// Eloquent का ग्लोबल इंस्टेंस सेट करें
$capsule->setAsGlobal();
// Eloquent को चालू करें
$capsule->bootEloquent();
कोड उदाहरण के साथ त्वरित शुरुआत
मान लीजिए हमारे डेटाबेस में एक users टेबल है। आइए इसके साथ काम करने के लिए एक Eloquent मॉडल बनाएं।
चरण 1: मॉडल बनाना
Laravel में मॉडल आमतौर पर app/Models में स्टोर होते हैं। आइए User.php फ़ाइल बनाएं:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
// Eloquent स्वचालित रूप से इस मॉडल को 'users' टेबल से जोड़ देगा
// टेबल का नाम क्लास के नाम के बहुवचन (snake_case) से निर्धारित होता है
// यदि टेबल का नाम अलग है, तो $table प्रॉपर्टी निर्दिष्ट करें
// protected $table = 'my_users';
// mass-assignment से बचाव के लिए बताएं कि कौन से फील्ड को मास असाइन किया जा सकता है
protected $fillable = ['name', 'email', 'password'];
}
चरण 2: मॉडल का उपयोग
अब हम मॉडल का उपयोग कर सकते हैं
पुस्तकालय में भी
C# (.NET) में JSON प्रोसेसिंग: Newtonsoft.Json और System.Text.Json के लिए पूर्ण गाइड
जावा में डेटाबेस माइग्रेशन: टूल्स और लाइब्रेरी की पूरी गाइड
जावा में HTML पार्सिंग: Jsoup, HtmlUnit और अन्य उपकरण
JavaScript (Node.js) में अंतर्राष्ट्रीयकरण (i18n): i18next लाइब्रेरी
Node.js में कैशिंग: Redis, Memcached और इन-बिल्ट मेमोरी