دليل مطوّري PHP للبدء في بناء تطبيقات Laravel – الجزء الأوّل
تُعدّ لغة PHP واحدة من أكثر لغات البرمجة استخدامًا في تطوير الويب، وقد شهدت عبر السنوات تطوّراً ملحوظًا من حيث الأداء، الهيكلية، والأطر البرمجية التي تدعمها. ومن بين هذه الأطر، يبرز Laravel كأكثر أطر العمل استخداماً وانتشاراً في مجتمع مطوري PHP، لما يقدمه من أدوات قوية، بنية نظيفة، دعم مجتمعي واسع، وسهولة في كتابة التطبيقات المعقّدة بطريقة منظمة وسلسة. في هذا الجزء الأول من الدليل، سنقدّم مقدّمة شاملة حول Laravel، ونبني قاعدة معرفية متينة للمطورين الراغبين في دخول عالم تطوير التطبيقات باستخدام هذا الإطار القوي.
مقدّمة حول Laravel
Laravel هو إطار عمل مفتوح المصدر بلغة PHP تم تطويره لأول مرة على يد “Taylor Otwell” عام 2011. يهدف Laravel إلى جعل تطوير تطبيقات الويب تجربة مريحة وسلسة من خلال تبنّي أفضل الممارسات في تطوير البرمجيات، وتوفير مكونات جاهزة ومتكاملة مثل التوجيه، إدارة الجلسات، المصادقة، التعامل مع قواعد البيانات، نظام القوالب، وغيرها.
يعتمد Laravel على بنية MVC (Model-View-Controller)، وهي بنية تنظيمية تُفصل بين منطق العمل، واجهة المستخدم، وتعامل البيانات، مما يسهل عملية الصيانة وتوسعة التطبيقات في المستقبل.
المتطلبات الأساسية لبدء استخدام Laravel
لبدء العمل مع Laravel، من الضروري أولاً التأكد من توافر البيئة اللازمة لتشغيله، وهي:
-
PHP: الإصدار 8.1 أو أعلى.
-
Composer: أداة إدارة الحزم في PHP.
-
قاعدة بيانات: MySQL، PostgreSQL، SQLite أو SQL Server.
-
خادم ويب: Apache أو Nginx.
-
Node.js و NPM: لتجميع الأصول الأمامية (CSS/JS) باستخدام Laravel Mix.
يوصى باستخدام بيئة عمل محلية مثل Laravel Homestead أو Laravel Sail، وهي أدوات رسمية تسهّل على المطورين إعداد بيئة تطوير موحّدة باستخدام VirtualBox أو Docker.
تثبيت Laravel
باستخدام Composer
bashcomposer create-project laravel/laravel my-project-name
بعد تنفيذ هذا الأمر، سيتم تحميل نسخة حديثة من Laravel مع جميع الاعتمادات اللازمة.
باستخدام Laravel Installer
bashcomposer global require laravel/installer laravel new my-project-name
تمنحك الطريقة الثانية سرعة أكبر في التثبيت، خاصة إذا كنت تقوم بإنشاء مشاريع Laravel باستمرار.
بنية المشروع في Laravel
بمجرد تثبيت Laravel، ستلاحظ وجود مجموعة من المجلدات الأساسية التي تشكّل هيكل التطبيق، ومن أهمّها:
| المجلد | الوظيفة الأساسية |
|---|---|
app/ |
يحتوي على ملفات المنطق الداخلي للتطبيق مثل Controllers وModels. |
routes/ |
يحتوي على ملفات تعريف التوجيه. |
resources/ |
يحتوي على ملفات الواجهات (Views) والأصول الأمامية. |
database/ |
يحتوي على ملفات التهجير (Migrations) ونماذج البيانات الوهمية (Seeders). |
config/ |
يحتوي على ملفات إعدادات النظام. |
public/ |
الجذر العام للوصول إلى التطبيق من خلال المتصفح. |
storage/ |
لتخزين الملفات المؤقتة، السجلات، الكاش. |
bootstrap/ |
يحتوي على ملفات التهيئة الأولية للتطبيق. |
أساسيات التوجيه Routing
التوجيه هو الخطوة الأولى التي تُعالج الطلبات القادمة من المستخدم. في Laravel، يتم تعريف التوجيهات داخل ملف routes/web.php لطلبات الويب، وroutes/api.php للواجهات البرمجية.
مثال على تعريف توجيه بسيط:
phpuse Illuminate\Support\Facades\Route;
Route::get('/hello', function () {
return 'مرحباً بك في Laravel';
});
يمكن للتوجيه أن يوجّه إلى وحدة تحكم (Controller):
phpRoute::get('/users', [UserController::class, 'index']);
إنشاء وحدات التحكم Controllers
توفر وحدات التحكم في Laravel طريقة منظمة لتنظيم منطق التطبيق. يتم إنشاؤها باستخدام الأمر:
bashphp artisan make:controller UserController
سيتم إنشاء ملف جديد داخل app/Http/Controllers/. داخل هذا الملف، يمكن إنشاء دوال مختلفة لمعالجة الطلبات، مثل:
phpclass UserController extends Controller
{
public function index()
{
return view('users.index');
}
}
إدارة قواعد البيانات باستخدام Migrations
واحدة من أقوى الميزات في Laravel هي نظام التهجير (Migrations) الذي يتيح إنشاء وتعديل قواعد البيانات باستخدام PHP بدلاً من SQL.
لإنشاء جدول:
bashphp artisan make:migration create_users_table
سيتم إنشاء ملف داخل database/migrations/ يمكن تعديله لتعريف الحقول:
phpSchema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamps();
});
لتطبيق التغييرات على قاعدة البيانات:
bashphp artisan migrate
العمل مع Eloquent ORM
Eloquent هو نظام ORM (Object Relational Mapping) خاص بـ Laravel، يسهّل التعامل مع قواعد البيانات بطريقة كائنية.
مثال على نموذج مستخدم:
bashphp artisan make:model User
سيتم إنشاء نموذج User يمكن استخدامه للتعامل مع جدول users:
php$users = User::all();
foreach ($users as $user) {
echo $user->name;
}
كما يدعم Eloquent العلاقات (One-to-Many, Many-to-Many, HasOne, BelongsTo)، والتي تُبنى باستخدام دوال داخل النماذج.
التعامل مع القوالب باستخدام Blade
Blade هو محرّك القوالب المدمج في Laravel، يسمح بكتابة الواجهات باستخدام توجيهات بسيطة:
blade@extends('layouts.app') @section('content')قائمة المستخدمين
@foreach($users as $user)
@endsection- {{ $user->name }}
@endforeach
توفر Blade أدوات قوية مثل التكرار، التحقق الشرطي، تضمين القوالب، وتوريث التخطيطات (Layouts) مما يسهم في جعل كود الواجهة نظيفًا وقابلاً لإعادة الاستخدام.
استخدام الأوامر Artisan
يحتوي Laravel على واجهة أوامر متقدمة تُعرف بـ Artisan، تتيح تنفيذ مجموعة من المهام بطريقة تلقائية.
أمثلة على الأوامر المهمة:
| الأمر | الوظيفة |
|---|---|
php artisan route:list |
عرض قائمة التوجيهات النشطة |
php artisan migrate |
تنفيذ التهجير |
php artisan make:model Post |
إنشاء نموذج Eloquent |
php artisan make:controller |
إنشاء وحدة تحكم |
php artisan serve |
تشغيل خادم التطوير المحلي |
الجدول الزمني لطلب صفحة في Laravel
لفهم سير الطلب داخل تطبيق Laravel، من المهم معرفة المراحل التي تمر بها أي طلبية:
-
الطلب يصل إلى خادم الويب (Apache/Nginx).
-
يُوجَّه إلى ملف
public/index.php، نقطة الدخول الأساسية. -
يبدأ Laravel في تحميل الملفات الأساسية من
bootstrap/app.php. -
تتم تهيئة التطبيق وتحميل ملف
routes/web.phpلتحديد التوجيه. -
يتم تمرير الطلب إلى وحدة التحكم، التي تقوم بتنفيذ المنطق المناسب.
-
يُعاد الرد إلى المتصفح على شكل HTML أو JSON.
أهمية بيئة التطوير المحلية
تشغيل Laravel محليًا باستخدام أدوات مثل Laravel Sail أو Homestead يقدّم العديد من الفوائد، مثل:
-
إعداد بيئة تطوير متكاملة متوافقة مع بيئة الإنتاج.
-
سهولة إدارة خدمات مثل MySQL, Redis, Mailhog.
-
دعم أوامر
artisanوnpmوcomposerبشكل متكامل.
تنظيم الشيفرة وتحقيق مبدأ الفصل بين الاهتمامات
أحد مبادئ Laravel الجوهرية هو الفصل بين مكونات التطبيق. يمكن تلخيص ذلك كالتالي:
-
Controllers: تنفيذ المنطق واستقبال الطلبات.
-
Models: التعامل مع البيانات وقاعدة البيانات.
-
Views: عرض البيانات للمستخدم.
-
Requests: التحقق من صحة الطلبات.
-
Services: تنفيذ العمليات المعقّدة بشكل منفصل ومنظم.
التحكم بالجلسات والمصادقة
يوفّر Laravel أنظمة جاهزة لإدارة الجلسات والمصادقة باستخدام مكونات جاهزة مثل Auth وMiddleware.
يمكن تفعيل نظام المصادقة من خلال:
bashphp artisan make:auth
كما يوفّر Laravel واجهات جاهزة لتسجيل الدخول، التسجيل، استعادة كلمة المرور، وحماية الروابط باستخدام Middleware مثل:
phpRoute::middleware('auth')->group(function () {
Route::get('/dashboard', [DashboardController::class, 'index']);
});
الخلاصة العامة للجزء الأول
في هذا الجزء الأول من دليل مطوّري PHP للبدء في بناء تطبيقات Laravel، تمّ التطرّق إلى الجوانب الأساسية التي تمكّن أي مطوّر من فهم البنية التحتية لـ Laravel، وكيفية إعداد المشروع، والعمل مع التوجيه، وحدات التحكم، النماذج، الواجهات، ونظام ORM، بالإضافة إلى فهم تسلسل الطلبات وتنظيم الشيفرة.
في الأجزاء القادمة من هذا الدليل، سيتم التوسّع في الجوانب المتقدّمة مثل بناء الواجهات البرمجية RESTful، استخدام Events وListeners، التحقق من الصلاحيات، بناء الاختبارات، وأفضل ممارسات النشر إلى بيئة الإنتاج.
المراجع:
-
Otwell, Taylor. Laravel: Up & Running. O’Reilly Media, 2022.

