مقدمة إلى Laravel وإعداد بيئة التطوير
Laravel هو إطار PHP الأكثر شعبية في العالم — بناءه الأنيق يجعل تطوير الويب فعالاً وممتعاً، تماماً مثل التطور من الرسائل المكتوبة يدوياً إلى البريد الإلكتروني.
1. ما ستتعلمه
- Laravel 11: ميزات الإصدار ونظرة عامة على النظام البيئي
- متطلبات نظام PHP 8.2+ ومدير الحزم Composer
- بيئات تطوير Docker: Laravel Sail مقابل Laravel Herd
- أنشئ مشروعك الأول، ShopMetrics
- تحليل هيكل مجلدات Laravel
2. قصة حقيقية لرائد أعمال
(1) المشكلة: صيانة نصوص تحليل التجارة الإلكترونية يدوياً
Bob مطور مستقل يقوم بصيانة أكثر من 20 نص تحليل PHP يدوياً لخمسة عملاء في التجارة الإلكترونية — في كل مرة يطلب عميل تقريراً جديداً، عليه كتابة SQL من الصفر، وتجميع HTML، والتعامل مع تحميل الملفات. الشهر الماضي، احتاج متجر Alice إضافة ميزة فوترة الاشتراك. استغرق Bob ثلاث ليالٍ بلا نوم لتسليمها، وكان الكود متناثراً عبر 15 مجلداً — حتى هو لم يستطع معرفة أين المنطق. Charlie كان أسوأ حالاً: حاول كتابة API بلغة PHP الأصلية، فقط ليجد أن جميع سطور الكود البالغ عددها 2,000 مليئة بثغرات حقن SQL.
(2) حل Laravel
يستخدم Laravel مجموعة من القواعد الأنيقة لتغليف المهام المتكررة — مثل التوجيه وقواعد البيانات والمصادقة والطوابير — في أدوات جاهزة للاستخدام. يحتاج Bob فقط إلى تعريف نماذجه ومساراته، وسيتم إنشاء صفحات CRUD ونقاط نهاية API ومصادقة المستخدمين تلقائياً.
# إنشاء مشروع في 30 ثانية
composer create-project laravel/laravel ShopMetrics
cd ShopMetrics
php artisan serve
# قم بزيارة http://localhost:8000 — تطبيقك يعمل!
(3) النتيجة
بعد إعادة كتابة ShopMetrics باستخدام Laravel، انخفض الوقت المطلوب لإنشاء تقرير بيانات جديد من 3 أيام إلى 3 ساعات، وانخفض حجم الكود بنسبة 70٪؛ وتم إطلاق ميزة اشتراك Alice في يومين فقط.
3. ما هو Laravel؟
Laravel هو إطار عمل ويب PHP مفتوح المصدر أنشأه Taylor Otwell في عام 2011. يتبع نمط بنية MVC ومعروف بـ "بناءه الأنيق" و"تجربة المطور".
graph LR
A[Laravel Framework] --> B[التوجيه]
A --> C[Eloquent ORM]
A --> D[قوالب Blade]
A --> E[المصادقة]
A --> F[نظام الطوابير]
A --> G[بث الأحداث]
A --> H[وحدة تحكم Artisan]
(1) فلسفة التصميم الأساسية
- القواعد قبل التهيئة: اتباع القواعد يعني كتابة كود أقل؛ تجاوزها فقط عند الحاجة للتخصيص
- بناء أنيق: استبدل الكود الإجرائي المطول باستدعاءات متسلسلة سلسة
- حل متكامل: إطار عمل واحد يغطي جميع الاحتياجات، من التوجيه إلى النشر
(2) ميزات جديدة في Laravel 11
| الميزة | الوصف |
|---|---|
| تبسيط هيكل المجلدات | إزالة 9 ملفات، بما في ذلك app/Http/Kernel.php |
| تمهيد أخف وزناً | bootstrap/app.php تهيئة الوسيط والاستثناءات في ملف واحد |
| استخدام SQLite افتراضياً | جاهز للاستخدام الفوري، لا حاجة لتهيئة MySQL |
- تحديد المعدل لكل ثانية | تحديد المعدل بدقة الثانية | | تحسينات بحث Scout | دعم البحث النصي الكامل والبحث المتجهي |
4. نظرة عامة على النظام البيئي Laravel
لا يقدم Laravel إطاراً أساسياً فحسب، بل أيضاً مجموعة كاملة من الأدوات الرسمية التي تغطي العملية بالكامل من التطوير إلى النشر.
| الأداة | الغرض | الوصف |
|---|---|---|
| Forge | إدارة الخادم | نشر بنقرة واحدة إلى DigitalOcean/Vultr |
| Vapor | نشر بلا خادم | حل بلا خادم مبني على AWS Lambda |
| Nova | لوحة الخلفية | لوحة CMS/إدارة رسمية |
| Sail | بيئة تطوير Docker | تهيئة Docker Compose مدمجة |
| Herd | بيئة تطوير محلية | بيئة تشغيل PHP أصلية لـ macOS/Windows |
| Breeze | هيكل المصادقة | قالب تسجيل دخول/تسجيل خفيف الوزن |
| Sanctum | مصادقة API | مصادقة مزدوجة SPA + رمز |
| Echo | البث في الوقت الفعلي | مكتبة أمامية لدفع أحداث WebSocket |
(1) ▶ مثال:التحقق من إصدار Laravel وأدوات النظام البيئي
# التحقق من إصدار Laravel
php artisan --version
# الناتج: Laravel Framework 11.x
# التحقق من الحزم المثبتة عبر Composer
composer show | grep laravel
# laravel/framework
# laravel/sail
# laravel/sanctum
# laravel/tinker
الناتج:
# تم تنفيذ الأمر بنجاح
5. إعداد البيئة
(1) PHP 8.2+ و Composer
يتطلب Laravel 11 إصدار PHP 8.2 أو أحدث. Composer هو مدير حزم لـ PHP، مشابه لـ npm لـ Node.js.
| المتطلب | الحد الأدنى للإصدار | الإصدار الموصى به |
|---|---|---|
| PHP | 8.2 | 8.3 |
| Composer | 2.0 | 2.8+ |
| الامتداد: Ctype | ✅ | ✅ |
| الامتداد: cURL | ✅ | ✅ |
| الامتداد: DOM | ✅ | ✅ |
| الامتداد: MBstring | ✅ | ✅ |
| الامتداد: OpenSSL | ✅ | ✅ |
| الامتداد: PDO | ✅ | ✅ |
| الامتداد: Tokenizer | ✅ | ✅ |
(1) ▶ مثال:تثبيت Composer والتحقق من البيئة
# تثبيت Composer (macOS/Linux)
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
# التحقق من إصدارات PHP و Composer
php -v
# PHP 8.3.x (cli)
composer -V
# Composer version 2.8.x
الناتج:
{"status":"ok","data":{}}
(2) حلول Docker: Laravel Sail مقابل Laravel Herd
| البُعد | Laravel Sail | Laravel Herd |
|---|---|---|
| المبدأ | حاويات Docker | PHP أصلي + Nginx |
| المنصة | Win/Mac/Linux | Mac/Windows |
| الأداء | أبطأ (عبء الحاوية) | أسرع (تشغيل أصلي) |
| العزل | عزل كامل | عزل جزئي |
| مناسب لـ | بيئة فريق موحدة | تطوير فردي سريع |
| وقت البدء | 30-60 ثانية | 5 ثوانٍ |
(2) ▶ مثال:بدء مشروع باستخدام Laravel Sail
# إنشاء مشروع باستخدام Sail
curl -s https://laravel.build/ShopMetrics | bash
cd ShopMetrics
# بدء جميع الخدمات (MySQL, Redis, MeiliSearch...)
./vendor/bin/sail up -d
# تشغيل أوامر Artisan داخل Sail
./vendor/bin/sail artisan migrate
الناتج:
{"status":"ok","data":{}}
(3) ▶ مثال:بدء مشروع باستخدام Laravel Herd
# بعد تثبيت Herd من laravelherd.com
# يكتشف Herd المشاريع تلقائياً في ~/Herd أو ~/Sites
cd ~/Herd
composer create-project laravel/laravel ShopMetrics
cd ShopMetrics
# يوفر Herd نطاق .test تلقائياً
# قم بزيارة: http://ShopMetrics.test
الناتج:
# تم تنفيذ الأمر بنجاح
6. إنشاء مشروع ShopMetrics
(1) إنشاء مشروع باستخدام Composer
composer create-project laravel/laravel ShopMetrics
cd ShopMetrics
(2) تحليل هيكل المجلدات
ShopMetrics/
├── app/ # الكود الأساسي للتطبيق
│ ├── Http/ # وحدات التحكم، الوسيط، الطلبات
│ ├── Models/ # نماذج Eloquent ORM
│ └── Providers/ # مزودو الخدمة
├── bootstrap/ # ملفات تمهيد الإطار
├── config/ # ملفات التهيئة
├── database/ # الترحيلات، الباذرات، المصانع
├── public/ # الجذر الويب (index.php)
├── resources/ # العروض، الأصول، ملفات اللغة
├── routes/ # تعريفات المسارات
│ ├── web.php # مسارات الويب
│ └── api.php # مسارات API
├── storage/ # السجلات، ذاكرة التخزين المؤقت، الملفات المجمعة
├── tests/ # اختبارات PHPUnit/Pest
└── vendor/ # تبعيات Composer
| المجلد | المسؤوليات | التشبيه |
|---|---|---|
app/ |
منطق الأعمال | مكتب الشركة |
routes/ |
توجيه URL | استقبال الشركة |
resources/views/ |
قالب الصفحة | صالة عرض الشركة |
database/ |
هياكل البيانات | أرشيف الشركة |
config/ |
معلمات التهيئة | سياسات وإجراءات الشركة |
public/ |
بوابة الويب | بوابة الشركة |
(1) ▶ مثال:بدء خادم التطوير والوصول إلى الصفحة الرئيسية
cd ShopMetrics
# بدء خادم التطوير المدمج
php artisan serve
# بدء تشغيل خادم تطوير Laravel: http://127.0.0.1:8000
# قم بزيارة http://127.0.0.1:8000 في المتصفح
# يجب أن ترى صفحة ترحيب Laravel
الناتج:
# تم تنفيذ الأمر بنجاح
7. مثال شامل: تهيئة مشروع ShopMetrics
# ============================================
# شامل: تهيئة مشروع ShopMetrics
# المحتوى: إنشاء مشروع، تهيئة .env، تشغيل الترحيلات، تشغيل الخادم
# ============================================
# 1. إنشاء مشروع Laravel
composer create-project laravel/laravel ShopMetrics
cd ShopMetrics
# 2. تهيئة البيئة
cp .env.example .env
php artisan key:generate
# تم تعيين مفتاح التطبيق بنجاح.
# 3. تهيئة قاعدة البيانات في .env (استخدام SQLite للبدء السريع)
# DB_CONNECTION=sqlite
# DB_DATABASE=database/database.sqlite
# 4. تشغيل الترحيلات الافتراضية
php artisan migrate
# تم إنشاء جداول الترحيل: users, password_reset_tokens, إلخ.
# 5. بدء خادم التطوير
php artisan serve
# الخادم يعمل على http://127.0.0.1:8000
# 6. التحقق من التثبيت
php artisan about
# البيئة: Local
# إصدار Laravel: 11.x
# إصدار PHP: 8.3.x
الناتج:
Application key set successfully.
Info: Using SQLite database: database/database.sqlite
Migration table created successfully.
Running migrations:
0001_01_01_000000_create_users_table ... done
0001_01_01_000001_create_password_reset_tokens_table ... done
Starting Laravel development server: http://127.0.0.1:8000
❓ أسئلة شائعة
php artisan serve.bootstrap/app.php.vendor/)، بينما npm هو مدير حزم لـ Node.js (يدير مجلد node_modules/). Laravel يستخدم كليهما: Composer يدير تبعيات PHP، وnpm يدير موارد الواجهة الأمامية.php artisan about في مجلد المشروع. سيقوم بإدراج جميع معلومات البيئة، مثل إصدار PHP والامتدادات وبرامج تشغيل قاعدة البيانات؛ سيتم تمييز أي عناصر لا تلبي المتطلبات باللون الأحمر.📖 ملخص
- Laravel هو إطار PHP المتكامل الأكثر شعبية، معروف ببناءه الأنيق وتجربة المطور
- Laravel 11 بسّط هيكل مجلداته واستخدم SQLite افتراضياً، مما يجعل البدء أسهل
- النظام البيئي Laravel يتضمن سلسلة أدوات كاملة مثل Forge و Vapor و Sail و Herd و Sanctum
- لإعداد البيئة، نوصي باستخدام Docker (Sail) أو التثبيت الأصلي (Herd)؛ كلاهما يتطلب PHP 8.2+ و Composer
- هيكل مجلدات المشروع يتبع نمط MVC: app/ يحتوي على المنطق، routes/ يحتوي على المسارات، وresources/ يحتوي على العروض
php artisan serveيسمح لك ببدء خادم تطوير بسرعة
📝 تمارين
-
تمرين أساسي (⭐): قم بتثبيت PHP 8.2+ و Composer محلياً، واستخدم
composer create-projectلإنشاء مشروع Laravel باسم ShopMetrics. تأكد من أنه يمكنك عرض صفحة الترحيب في المتصفح. -
تمرين متقدم (⭐⭐): أنشئ نفس المشروع باستخدام Laravel Sail أو Docker، وقارن الفروق بين طريقتي بدء
php artisan serveو Sail، وسجل وقت البدء واستخدام الذاكرة. -
تحدي (⭐⭐⭐): راجع التغييرات في هيكل مجلدات Laravel 11 (مقارنة بـ Laravel 10)، واسرد الملفات التي تمت إزالتها مع كيفية تنفيذ وظائفها الآن في Laravel 11.



