ما هو Eloquent ORM ولماذا هو مطلوب؟
\n\nEloquent ORM (تعيين الكائنات العلائقية) — هي مكتبة مدمجة للعمل مع قواعد البيانات في إطار عمل PHP Laravel. توفر طريقة أنيقة وبديهية للتفاعل مع قواعد البيانات العلائقية (MySQL, PostgreSQL, SQLite, SQL Server) باستخدام نمط Active Record.
\n\nلماذا تحتاج Eloquent؟
\n- \n
- تجريد SQL: بدلاً من كتابة استعلامات SQL الخام، تعمل مع كائنات PHP. هذا يجعل الكود أنظف وأكثر قابلية للقراءة وأكثر أمانًا. \n
- Active Record: كل نموذج Eloquent يمثل جدولاً في قاعدة البيانات. مثيل النموذج هو صف في هذا الجدول. يمكنك قراءة وتعديل وحفظ البيانات بمجرد العمل مع خصائص الكائن. \n
- الحماية من حقن SQL: يستخدم Eloquent PDO (كائنات بيانات PHP) مع استعلامات مُعدة، مما يقوم تلقائيًا بعزل إدخال المستخدم. \n
- العلاقات: سهولة تعريف واستخدام الروابط بين الجداول (واحد إلى واحد، واحد إلى متعدد، متعدد إلى متعدد، إلخ). \n
- المجموعات: يتم إرجاع نتائج الاستعلامات في شكل مجموعات — كائنات قوية توفر العديد من الطرق المفيدة لمعالجة البيانات (map, filter, reduce, pluck، إلخ). \n
- المحولات والموصلات: تسمح بتحويل البيانات عند الحفظ (المحولات) أو عند القراءة (الموصلات) من قاعدة البيانات. \n
Eloquent ليست مجرد مكتبة، بل هي جزء أساسي من نظام Laravel البيئي. فهم Eloquent ضروري للتطوير الفعال على هذا الإطار.
\n\nالتثبيت
\n\nيتم تثبيت Eloquent ORM تلقائيًا مع إطار عمل Laravel. إذا كنت تنشئ مشروع Laravel جديد، فإن Eloquent جاهز للاستخدام.
\n\nالتثبيت عبر Composer (إذا كنت تستخدم Laravel):
\ncomposer create-project laravel/laravel example-app\ncd example-app\n\nتثبيت Eloquent بدون Laravel (Standalone):
\nيمكنك استخدام Eloquent خارج Laravel، على سبيل المثال، في مشروعك الخاص. للقيام بذلك، ستحتاج إلى تثبيت الحزمة illuminate/database وإعداد اتصال بقاعدة البيانات.
composer require illuminate/database\ncomposer require illuminate/events // للعمل مع أحداث النماذج (اختياري)\n\nمثال على إعداد الاتصال (standalone):
\n<?php\nrequire 'vendor/autoload.php';\n\nuse Illuminate\\Database\\Capsule\\Manager as Capsule;\n\n$capsule = new Capsule;\n\n$capsule->addConnection([\n 'driver' => 'mysql',\n 'host' => 'localhost',\n 'database' => 'your_database',\n 'username' => 'your_username',\n 'password' => 'your_password',\n 'charset' => 'utf8',\n 'collation' => 'utf8_unicode_ci',\n 'prefix' => '',\n]);\n\n// إعداد المثيل العام لـ Eloquent\n$capsule->setAsGlobal();\n\n// تشغيل Eloquent\n$capsule->bootEloquent();\n\n\nبداية سريعة مع مثال كود
\n\nلنفترض أن لدينا جدول users في قاعدة البيانات. لننشئ نموذج Eloquent للعمل معه.
الخطوة 1: إنشاء النموذج
\nفي Laravel، يتم تخزين النماذج عادةً في app/Models. لننشئ ملف User.php:
<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass User extends Model\n{\n // Eloquent سيربط هذا النموذج تلقائيًا بجدول 'users'\n // يتم تحديد اسم الجدول من اسم النموذج بصيغة الجمع (snake_case)\n // إذا كان الجدول يسمى بشكل مختلف، حدد الخاصية $table\n // protected $table = 'my_users';\n\n // حدد الحقول التي يمكن تعبئتها بشكل جماعي (للحماية من التعبئة الجماعية)\n protected $fillable = ['name', 'email', 'password'];\n}\