انتقل إلى محتوى الدرس
الدرس 28
دورة إطار العمل Laravel

إعداد اتصال قواعد البيانات وأساسيات التهجير في LaravelDatabase Connections and Migration Fundamentals in Laravel

ضبط اتصال قاعدة بيانات MySQL في ملف .env وفهم دور نظام التهجير Migrations في إدارة إصدارات الجداول وفق أحدث معايير إطار العمل Laravel 12 مع أمثلة وتطبيقات عملية متدرجة.
أقسام الدرس
6
الأمثلة
6
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
0
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

يجمع إطار Laravel كافة ملفات تعريف الاتصال بقواعد البيانات داخل ملف config/database.php ويدعم خمسة محركات قياسية رسمياً. وسواء استخدم فريقك SQLite للتطوير المحلي السريع أو MySQL و PostgreSQL في الإنتاج، تحافظ طبقة التجريد الموحدة على ثبات كود التطبيق.

  • خمسة محركات رسمية (Core Drivers): دعم مدمج كامل لقواعد SQLite و MySQL و MariaDB و PostgreSQL و SQL Server.
  • ملف الإعدادات (config/database.php): يربط أسماء الاتصالات بإعدادات المحركات المستمدة من ملف البيئة.
  • مبني على PDO (PDO Layer): يعتمد داخلياً على مكتبة PDO القياسية لضمان أمان وتوحيد الاستعلامات.
مخطط معماري يوضح إعداد اتصال قواعد البيانات وأساسيات التهجير في Laravel في إطار العمل Laravel 12
PHP
// Reading active database driver via config()
$driver = config('database.default');
$host = config('database.connections.mysql.host');
$port = config('database.connections.mysql.port');

لا يتطلب تحويل تطبيق Laravel من SQLite إلى MySQL سوى تحديث متغيرات الاتصال التي تبدأ بالبادئة DB_ داخل ملف البيئة .env. يضمن فصل بيانات الاعتماد في ملف البيئة اتصال كل بيئة تطوير أو إنتاج بقاعدتها المستقلة دون لمس ملفات الكود.

  • تحديد المحرك (DB_CONNECTION): تعيين اسم المحرك النشط مثل mysql أو mariadb أو pgsql.
  • العنوان والمنفذ (Host & Port): تحديد عنوان الخادم المحلي 127.0.0.1 والمنفذ القياسي 3306 لـ MySQL.
  • بيانات الاعتماد (Credentials): ضبط اسم القاعدة واسم المستخدم وكلمة المرور بأمان خارج مستودع Git.
PHP
# .env MySQL configuration
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=closetag_shop
DB_USERNAME=root
DB_PASSWORD=secret

تعمل تهجيرات قواعد البيانات كنظام تحكم بالإصدارات لهيكلة الجداول، مستبدلةً التعديلات اليدوية العشوائية بملفات PHP برمجية قابلة للتنفيذ. يسحب كل مطور في الفريق نفس ملفات التهجير عبر Git ويشغل أمراً واحداً لبناء هيكلة جداول متطابقة تماماً.

  • إدارة إصدارات الجداول (Version Control): توثيق كل عملية إنشاء جدول أو تعديل عمود برمجياً داخل مستودع Git.
  • البادئة الزمنية (Timestamp Prefix): يبدأ اسم كل ملف بالتاريخ والوقت لضمان تنفيذ التهجيرات بترتيبها الزمني الدقيق.
  • مزامنة الفريق (Team Sync): القضاء على أخطاء اختلاف الجداول والأعمدة الناقصة بين أجهزة المطورين.
PHP
// Chronological files in database/migrations:
// 0001_01_01_000000_create_users_table.php
// 0001_01_01_000001_create_cache_table.php
// 0001_01_01_000002_create_jobs_table.php

عند تشغيل التهجيرات لأول مرة، ينشئ Laravel تلقائياً جدولاً خاصاً في قاعدة البيانات باسم migrations. يسجل هذا الجدول اسم كل ملف تهجير تم تنفيذه مع رقم الدفعة batch لكي لا يعيد الإطار تشغيل نفس الملف مرتين وليعرف كيفية التراجع عنه.

  • جدول التتبع (migrations Table): سجل داخلي يحفظ اسم كل ملف تهجير منفذ ورقم دفعته.
  • رقم الدفعة (Batch Number): تشترك جميع الملفات التي نُفذت في أمر واحد بنفس رقم الدفعة المتسلسل.
  • الأمان من التكرار (Idempotency): إعادة تشغيل أمر التهجير تنفذ فقط الملفات الجديدة غير المسجلة في جدول التتبع.
PHP
// Columns inside the internal migrations table:
// id        : auto-increment primary key
// migration : '0001_01_01_000000_create_users_table'
// batch     : integer batch number (1, 2, 3...)

قبل تنفيذ أي تغييرات على الجداول، يمكنك فحص حالة الاتصال بقاعدة البيانات وسجل التهجيرات مباشرة عبر أوامر Artisan. يعرض الأمر db:show ملخصاً لمحرك القاعدة والجداول وأحجامها، بينما يوضح الأمر migrate:status الملفات المنفذة والمعلقة.

  • فحص القاعدة (db:show): التحقق من نجاح الاتصال وعرض إحصائيات الجداول وعدد السجلات وحجمها.
  • حالة التهجيرات (migrate:status): طباعة قائمة بكافة ملفات التهجير مع حالة التنفيذ ورقم الدفعة لكل ملف.
  • تفاصيل الجدول (db:table): استعراض أعمدة وفهارس ومفاتيح جدول محدد مباشرة من سطر الأوامر.
PHP
# Verify connection and inspect migration ledger
php artisan db:show
php artisan migrate:status
php artisan db:table users

يضمن ضبط إعدادات الاتصال في ملف البيئة مع سجل التهجيرات تطوراً منظماً وآمنًا لهيكلة قاعدة البيانات من جهاز التطوير وحتى خادم الإنتاج. راجع هذا الملخص لإتقان متغيرات الاتصال وأوامر التشخيص والفحص عبر Artisan.

وجه المقارنة الهندسيالأسلوب اليدوي أو غير المحميمعيار Laravel 12 الحديث
بيانات الاتصالكتابة بيانات mysqli_connect مباشرة داخل ملفات الكودمتغيرات بيئة معزولة في .env تُقرأ عبر config/database.php
مشاركة هيكلة الجداولإرسال ملفات .sql يدوياً بين أعضاء الفريقملفات تهجير PHP مؤرخة ومحفوظة ضمن مستودع Git
تتبع التنفيذالتخمين اليدوي لأي التعديلات تم تطبيقه على الخادمجدول migrations آلي يوثق كل ملف منفذ ورقم دفعته
فحص حالة القاعدةالاعتماد على برامج خارجية لمعرفة الأعمدة والجداولأوامر Artisan مدمجة مثل db:show و db:table و migrate:status
PHP
# Typical setup workflow for a teammate cloning the repo
cp .env.example .env
php artisan key:generate
php artisan migrate:status
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

أتقنت في هذا الدرس حول «إعداد اتصال قواعد البيانات وأساسيات التهجير في Laravel» مفاهيم محركات قواعد البيانات في Laravel، وإعداد اتصال قاعدة بيانات MySQL، ومفهوم تهجير قواعد البيانات وأهميته وفق معايير Laravel 12 الحديثة.

الخطوة التالية والدرس القادم

انتقل الآن إلى الدرس التالي «إنشاء وتشغيل التهجيرات المجهولة والتراجع عنها في Laravel» للبناء التراكمي على ما تعلمته.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 Migration Basics أساسيات التهجير
ضبط اتصال قاعدة بيانات MySQL في ملف .env وفهم دور نظام التهجير Migrations في إدارة إصدارات الجداول وفق أحدث معايير إطار العمل Laravel 12 مع أمثلة وتطبيقات عملية متدرجة.
للمراجعة
02 Supported Database Drivers in Laravel محركات قواعد البيانات في Laravel
المفهوم الهندسي والتطبيق العملي المباشر لقسم محركات قواعد البيانات في Laravel في إطار العمل Laravel 12.
للمراجعة
03 Configuring MySQL Connection in Env إعداد اتصال قاعدة بيانات MySQL
المفهوم الهندسي والتطبيق العملي المباشر لقسم إعداد اتصال قاعدة بيانات MySQL في إطار العمل Laravel 12.
للمراجعة
04 What Are Database Schema Migrations مفهوم تهجير قواعد البيانات وأهميته
المفهوم الهندسي والتطبيق العملي المباشر لقسم مفهوم تهجير قواعد البيانات وأهميته في إطار العمل Laravel 12.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 MVC MVC
Model View Controller
النمط المعماري الذي يفصل بين نماذج البيانات Models، وطبقات العرض Views، والمتحكمات Controllers في Laravel.
للمراجعة
02 CLI CLI
Command Line Interface
واجهة سطر الأوامر التي تعمل عبر أداة php artisan لتوليد الملفات وإدارة التطبيق.
للمراجعة
03 HTTP HTTP
Hypertext Transfer Protocol
بروتوكول نقل النص الفائق الذي ينظم طلبات المتصفح واستجابات خادم Laravel.
للمراجعة
04 PSR PSR
PHP Standards Recommendations
المعايير القياسية للغة PHP مثل التحميل التلقائي PSR-4 التي يلتزم بها إطار العمل Laravel.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. اكتب ونفّذ المثال البرمجي المشروح في قسم «محركات قواعد البيانات في Laravel» داخل مشروع Laravel 12 المحلي وتحقق من النتيجة.

  2. بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم «إعداد اتصال قاعدة بيانات MySQL» وقارن مخرجات التنفيذ.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

8أسئلة 3أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي8 أسئلة تنتظرك
01

ما الهدف الهندسي الأساسي من محركات قواعد البيانات في Laravel في إطار العمل Laravel 12؟

يسهم محركات قواعد البيانات في Laravel في تنظيم منطق التطبيق بأسلوب معياري آمن وقابل للصيانة في Laravel 12.

02

يساعد الالتزام باصطلاحات Laravel 12 الرسمية في قسم «إعداد اتصال قاعدة بيانات MySQL» على رفع جودة الكود وسهولة اختباره آلياً.

صواب؛ الالتزام بالمعايير القياسية في Laravel 12 يجعل الكود واضحاً وسهل الفحص والصيانة.

03

أي آلية في Laravel 12 تتولى إدارة مفهوم تهجير قواعد البيانات وأهميته بشكل مباشر ومنظم؟

توفر طبقة إطار العمل وحاوية الخدمات في Laravel 12 الأدوات القياسية لإدارة مفهوم تهجير قواعد البيانات وأهميته.

04

لماذا يُعد تطبيق التهجيرات الافتراضية وجدول التتبع مهماً عند بناء تطبيقات Laravel 12 جاهزة للإنتاج؟

لأنه يمنع الأخطاء البرمجية الخفية ويوحد سلوك التطبيق بين بيئتي التطوير والإنتاج.

05

في Laravel 12، يُنصح بكتابة مفاتيح الإنتاج السرية مباشرة داخل ملفات الكود المصدري المرفوعة إلى Git بدلاً من ملفات البيئة.

خطأ؛ يجب حفظ المفاتيح والبيانات السرية في متغيرات البيئة وعدم رفعها أبداً إلى مستودع Git.

06

ما المزايا الهندسية التي يحققها تطبيق فحص حالة الاتصال وجدول التهجيرات في Laravel 12؟ (اختر كل ما ينطبق)

يوفر فصلاً واضحاً للمسؤوليات، وأماناً أعلى أثناء التنفيذ، وتعاوناً أسهل بين أفراد الفريق.

07

يوظف إطار العمل Laravel 12 ميزات PHP 8 الحديثة مثل تحديد أنواع القيم المرجعة لجعل الكود أكثر وضوحاً وأماناً.

صواب؛ يعتمد Laravel 12 بشكل كامل على الصياغة الحديثة للغة PHP 8.2+ وسلامة الأنواع.

08

ما الفرق الجوهري بين معيار Laravel 12 الحديث والملفات اليدوية التقليدية في ملخص إعداد الاتصال وأساسيات التهجير؟

يوفر Laravel 12 واجهات قياسية موحدة وحماية مدمجة تغني عن الكود اليدوي المعرض للأخطاء.