404 Not Found

404 Not Found


nginx

مقدمة إلى Laravel وإعداد بيئة التطوير

Laravel هو إطار PHP الأكثر شعبية في العالم — بناءه الأنيق يجعل تطوير الويب فعالاً وممتعاً، تماماً مثل التطور من الرسائل المكتوبة يدوياً إلى البريد الإلكتروني.

1. ما ستتعلمه


2. قصة حقيقية لرائد أعمال

(1) المشكلة: صيانة نصوص تحليل التجارة الإلكترونية يدوياً

Bob مطور مستقل يقوم بصيانة أكثر من 20 نص تحليل PHP يدوياً لخمسة عملاء في التجارة الإلكترونية — في كل مرة يطلب عميل تقريراً جديداً، عليه كتابة SQL من الصفر، وتجميع HTML، والتعامل مع تحميل الملفات. الشهر الماضي، احتاج متجر Alice إضافة ميزة فوترة الاشتراك. استغرق Bob ثلاث ليالٍ بلا نوم لتسليمها، وكان الكود متناثراً عبر 15 مجلداً — حتى هو لم يستطع معرفة أين المنطق. Charlie كان أسوأ حالاً: حاول كتابة API بلغة PHP الأصلية، فقط ليجد أن جميع سطور الكود البالغ عددها 2,000 مليئة بثغرات حقن SQL.

(2) حل Laravel

يستخدم Laravel مجموعة من القواعد الأنيقة لتغليف المهام المتكررة — مثل التوجيه وقواعد البيانات والمصادقة والطوابير — في أدوات جاهزة للاستخدام. يحتاج Bob فقط إلى تعريف نماذجه ومساراته، وسيتم إنشاء صفحات CRUD ونقاط نهاية API ومصادقة المستخدمين تلقائياً.

BASH
# إنشاء مشروع في 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 ومعروف بـ "بناءه الأنيق" و"تجربة المطور".

100%
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

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 وأدوات النظام البيئي

BASH
# التحقق من إصدار Laravel
php artisan --version
# الناتج: Laravel Framework 11.x

# التحقق من الحزم المثبتة عبر Composer
composer show | grep laravel
# laravel/framework
# laravel/sail
# laravel/sanctum
# laravel/tinker

الناتج:

TEXT
# تم تنفيذ الأمر بنجاح

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 والتحقق من البيئة

BASH
# تثبيت 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

الناتج:

TEXT
{"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

BASH
# إنشاء مشروع باستخدام 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

الناتج:

TEXT
{"status":"ok","data":{}}

(3) ▶ مثال:بدء مشروع باستخدام Laravel Herd

BASH
# بعد تثبيت Herd من laravelherd.com
# يكتشف Herd المشاريع تلقائياً في ~/Herd أو ~/Sites

cd ~/Herd
composer create-project laravel/laravel ShopMetrics
cd ShopMetrics

# يوفر Herd نطاق .test تلقائياً
# قم بزيارة: http://ShopMetrics.test

الناتج:

TEXT
# تم تنفيذ الأمر بنجاح

6. إنشاء مشروع ShopMetrics

(1) إنشاء مشروع باستخدام Composer

BASH
composer create-project laravel/laravel ShopMetrics
cd ShopMetrics

(2) تحليل هيكل المجلدات

TEXT
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) ▶ مثال:بدء خادم التطوير والوصول إلى الصفحة الرئيسية

BASH
cd ShopMetrics

# بدء خادم التطوير المدمج
php artisan serve
# بدء تشغيل خادم تطوير Laravel: http://127.0.0.1:8000

# قم بزيارة http://127.0.0.1:8000 في المتصفح
# يجب أن ترى صفحة ترحيب Laravel

الناتج:

TEXT
# تم تنفيذ الأمر بنجاح

7. مثال شامل: تهيئة مشروع ShopMetrics

BASH
# ============================================
# شامل: تهيئة مشروع 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

الناتج:

TEXT
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

❓ أسئلة شائعة

س ما الفرق بين Laravel و CodeIgniter؟
ج Laravel هو إطار عمل متكامل مع ORM ومصادقة وطوابير وبث مدمج؛ CodeIgniter هو إطار عمل خفيف يوفر فقط التوجيه وMVC الأساسي، بينما يجب تنفيذ الميزات الأخرى يدوياً. Laravel مناسب للمشاريع المتوسطة إلى الكبيرة، بينما CodeIgniter مناسب للمشاريع الصغيرة.
س هل يجب علي استخدام Docker؟
ج لا، لست مضطراً. Docker (Sail) مناسب للفرق التي تسعى لتوحيد بيئتها، بينما Laravel Herd مثالي للأفراد الذين يسعون للتطوير السريع. إذا كان لديك بالفعل بيئة PHP 8.2+، يمكنك ببساطة تشغيل php artisan serve.
س هل هناك اختلافات كبيرة بين Laravel 11 و Laravel 10؟
ج Laravel 11 يبسط هيكل المجلدات وعملية البدء، لكن واجهة API الأساسية تظل دون تغيير كبير. الترقية من Laravel 10 تتطلب عادةً فقط تعديل تهيئة bootstrap/app.php.
س لماذا يُوصى بـ SQLite كقاعدة بيانات للمبتدئين؟
ج SQLite لا يتطلب تثبيت — على عكس MySQL أو PostgreSQL — وهو جاهز للاستخدام الفوري، مما يجعله مثالياً للتعلم والنماذج الأولية. لبيئات الإنتاج، نوصي بالتحول إلى MySQL أو PostgreSQL.
س ما الفرق بين Composer و npm؟
ج Composer هو مدير حزم لـ PHP (يدير مجلد vendor/)، بينما npm هو مدير حزم لـ Node.js (يدير مجلد node_modules/). Laravel يستخدم كليهما: Composer يدير تبعيات PHP، وnpm يدير موارد الواجهة الأمامية.
س كيف يمكنني تحديد ما إذا كانت بيئتي المحلية تلبي متطلبات Laravel؟
ج قم بتشغيل php artisan about في مجلد المشروع. سيقوم بإدراج جميع معلومات البيئة، مثل إصدار PHP والامتدادات وبرامج تشغيل قاعدة البيانات؛ سيتم تمييز أي عناصر لا تلبي المتطلبات باللون الأحمر.

📖 ملخص


📝 تمارين

  1. تمرين أساسي (⭐): قم بتثبيت PHP 8.2+ و Composer محلياً، واستخدم composer create-project لإنشاء مشروع Laravel باسم ShopMetrics. تأكد من أنه يمكنك عرض صفحة الترحيب في المتصفح.

  2. تمرين متقدم (⭐⭐): أنشئ نفس المشروع باستخدام Laravel Sail أو Docker، وقارن الفروق بين طريقتي بدء php artisan serve و Sail، وسجل وقت البدء واستخدام الذاكرة.

  3. تحدي (⭐⭐⭐): راجع التغييرات في هيكل مجلدات Laravel 11 (مقارنة بـ Laravel 10)، واسرد الملفات التي تمت إزالتها مع كيفية تنفيذ وظائفها الآن في Laravel 11.

Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%