ما هو Laravel؟ ولماذا يعتبر من أفضل أطر عمل PHP؟
إذا كنت ترغب في تعلم تطوير مواقع الويب باستخدام لغة PHP، فمن المؤكد أنك سمعت باسم Laravel، وهو أحد أشهر أطر العمل المستخدمة حاليًا في عالم تطوير تطبيقات الويب باستخدام PHP.
لكن ما هو Laravel؟ ولماذا أصبح خيارًا شائعًا لدى آلاف المطورين والشركات؟ وهل تعلم Laravel مناسب للمبتدئين؟ وما الذي يمكنك بناءه باستخدامه؟
في هذا الدرس الأول من كورس Laravel على موقع نسور التقنية سنبدأ من الأساسيات تمامًا، وسنتعرف على Laravel بطريقة مبسطة، ثم نوضح الفرق بين PHP التقليدية وLaravel، ونتعرف على أهم مميزات هذا الإطار، ومفهوم MVC، وأهم المصطلحات التي ستصادفها أثناء دراسة الكورس.
لا تحتاج في هذا الدرس إلى معرفة مسبقة بـ Laravel، ولكن من الأفضل أن تكون لديك فكرة أساسية عن HTML و CSS، وأن تكون لديك معرفة أولية بلغة PHP.
ما هي لغة PHP؟
قبل أن نتحدث عن Laravel، يجب أولًا أن نفهم ما هي PHP.
PHP هي لغة برمجة مفتوحة المصدر تستخدم بشكل أساسي في تطوير تطبيقات ومواقع الويب الديناميكية.
فعندما تدخل إلى موقع ويب، قد ترى صفحات تحتوي على محتوى ثابت، مثل النصوص والصور. ولكن الكثير من المواقع الحديثة تحتاج إلى تنفيذ عمليات أكثر تعقيدًا، مثل:
- تسجيل المستخدمين.
- تسجيل الدخول والخروج.
- إنشاء الحسابات.
- تخزين البيانات.
- قراءة البيانات من قاعدة البيانات.
- تعديل وحذف البيانات.
- إنشاء المقالات.
- إدارة المنتجات.
- معالجة الطلبات.
- إرسال رسائل البريد الإلكتروني.
- إنشاء APIs.
- التعامل مع الملفات والصور.
هنا يأتي دور لغات البرمجة الموجودة على الخادم، ومن أشهرها PHP.
فعلى سبيل المثال، عندما يقوم المستخدم بتسجيل الدخول إلى موقع ما، يقوم الخادم باستقبال اسم المستخدم وكلمة المرور، ثم يستخدم PHP لمعالجة البيانات والتحقق منها، وبعد ذلك يتواصل مع قاعدة البيانات لمعرفة ما إذا كانت بيانات المستخدم صحيحة.
إذن يمكننا القول إن PHP تساعدنا على بناء الجزء البرمجي من تطبيقات الويب.
لكن مع زيادة حجم المشروع، قد تصبح كتابة كل شيء باستخدام PHP الخام أمرًا صعبًا ومعقدًا.
وهنا تظهر أهمية أطر العمل مثل Laravel.
ما هو Laravel؟
Laravel هو إطار عمل Framework مفتوح المصدر مبني باستخدام لغة PHP، ويستخدم لتطوير تطبيقات ومواقع الويب بطريقة منظمة وسريعة وآمنة.
بمعنى آخر، Laravel ليس لغة برمجة جديدة تحل محل PHP، وإنما هو مجموعة كبيرة من الأدوات والقواعد والمكونات الجاهزة التي تعمل فوق PHP وتساعد المطور على بناء التطبيقات بشكل أفضل.
تخيل أنك تريد بناء منزل.
يمكنك البدء من الصفر، وشراء كل شيء بنفسك، وتصميم كل قطعة، وبناء الأبواب والنوافذ والجدران بنفسك.
ولكن هناك طريقة أسهل، وهي استخدام مخطط هندسي وأدوات جاهزة ومواد منظمة تساعدك على بناء المنزل بطريقة أسرع وأكثر احترافية.
هذا هو الفرق تقريبًا بين استخدام PHP بشكل تقليدي واستخدام Framework مثل Laravel.
Laravel يوفر لك بنية منظمة وأدوات جاهزة للعديد من المهام التي يحتاج إليها أي تطبيق ويب تقريبًا.
هل Laravel لغة برمجة؟
هذه نقطة مهمة جدًا للمبتدئين.
Laravel ليس لغة برمجة.
لغة البرمجة هي PHP.
أما Laravel فهو Framework أو "إطار عمل" مبني باستخدام PHP.
يمكن تبسيط العلاقة بالشكل التالي:
PHP → لغة البرمجة
Laravel → إطار عمل مبني باستخدام PHP
ولذلك عندما تتعلم Laravel، فأنت في الحقيقة تستخدم لغة PHP داخل إطار عمل يوفر لك العديد من الأدوات والمميزات.
ولهذا السبب من المهم أن يكون لديك أساس جيد في PHP قبل الدخول في المواضيع المتقدمة في Laravel.
ما المشكلة التي يحلها Laravel؟
قد تتساءل الآن:
إذا كانت PHP قادرة على بناء المواقع، فلماذا نحتاج إلى Laravel؟
الإجابة أن المشاريع الصغيرة قد تكون سهلة نسبيًا باستخدام PHP، ولكن عندما يكبر المشروع تبدأ المشاكل بالظهور.
تخيل أنك تقوم ببناء متجر إلكتروني يحتوي على:
- آلاف المنتجات.
- حسابات المستخدمين.
- نظام تسجيل الدخول.
- سلة المشتريات.
- الطلبات.
- الدفع.
- لوحة تحكم.
- صلاحيات المستخدمين.
- إرسال البريد الإلكتروني.
- رفع الصور.
- API.
- نظام إشعارات.
إذا حاولت بناء كل هذه الوظائف من الصفر دون وجود إطار عمل، فسوف تحتاج إلى كتابة كمية ضخمة من التعليمات البرمجية.
كما أنك ستحتاج إلى التفكير بنفسك في كيفية تنظيم الملفات، وكيفية التعامل مع قواعد البيانات، وكيفية التحقق من البيانات، وكيفية حماية التطبيق، وكيفية إدارة المستخدمين وغيرها من التفاصيل.
Laravel يأتي ليجعل هذه العملية أكثر تنظيمًا.
أهم مميزات Laravel
يحتوي Laravel على عدد كبير جدًا من الأدوات والمميزات، ومن أهمها:
1. سهولة الاستخدام
أحد أهم أسباب شهرة Laravel هو أنه يحاول جعل كتابة الكود أكثر وضوحًا وسهولة.
فبدلًا من كتابة الكثير من الأكواد لتنفيذ عملية معينة، يوفر Laravel أدوات وطرقًا مختصرة ومنظمة.
وهذا يجعل المطور قادرًا على التركيز على منطق التطبيق بدلًا من إضاعة الوقت في التفاصيل المتكررة.
2. تنظيم المشروع
Laravel يفرض على المشروع بنية منظمة.
ستجد مجلدات مخصصة للمتحكمات، والنماذج، والمسارات، والواجهات، والهجرات وغيرها.
هذا التنظيم يصبح مهمًا جدًا عندما يكبر المشروع ويعمل عليه أكثر من مطور.
3. نظام Routing قوي
من الأشياء الأساسية في أي تطبيق ويب هي المسارات أو Routes.
فعندما يزور المستخدم رابطًا معينًا، يحتاج التطبيق إلى معرفة ماذا يجب أن يفعل.
مثلًا:
/articles
يمكن أن يكون هذا الرابط مسؤولًا عن عرض قائمة المقالات.
بينما:
/articles/10
يمكن أن يعرض المقال الذي يحمل الرقم 10.
Laravel يوفر نظام Routing بسيطًا ومرنًا لإدارة هذه المسارات.
وسنتعلم Routing بالتفصيل في أحد الدروس القادمة.
4. Blade Template Engine
Laravel يأتي مع محرك قوالب يسمى Blade.
يساعد Blade على بناء صفحات HTML ديناميكية بطريقة منظمة.
فعلى سبيل المثال، يمكنك إنشاء قالب رئيسي للموقع يحتوي على:
- رأس الصفحة.
- القائمة الرئيسية.
- التذييل.
ثم تستخدمه في صفحات متعددة بدلًا من تكرار نفس كود HTML في كل صفحة.
وهذا يوفر الكثير من الوقت ويجعل المشروع أسهل في الإدارة.
5. Eloquent ORM
من أقوى الأدوات الموجودة في Laravel نظام يسمى Eloquent ORM.
Eloquent يسمح لك بالتعامل مع قواعد البيانات باستخدام نماذج PHP بطريقة سهلة ومنظمة.
فبدلًا من كتابة استعلامات SQL في كل مرة، يمكنك استخدام Model يمثل جدولًا معينًا في قاعدة البيانات.
على سبيل المثال، يمكن أن يكون لدينا جدول:
users
ونموذج:
User
ومن خلاله يمكننا تنفيذ عمليات مثل قراءة المستخدمين وإنشاء مستخدم جديد وتعديل البيانات وحذفها.
سنخصص عدة دروس مستقبلية لـ Eloquent لأنه من أهم أجزاء Laravel.
6. Migrations
عندما تعمل على تطبيق يحتوي على قاعدة بيانات، تحتاج إلى إنشاء الجداول وتعديلها من وقت إلى آخر.
Laravel يوفر نظامًا يسمى Migrations.
من خلاله تستطيع وصف بنية قاعدة البيانات باستخدام ملفات برمجية.
على سبيل المثال، يمكنك إنشاء Migration لإنشاء جدول للمقالات يحتوي على:
id title content created_at updated_at
ومن مميزات هذا النظام أنك تستطيع الاحتفاظ بالتغييرات التي أجريتها على قاعدة البيانات داخل المشروع نفسه.
وهذا مفيد جدًا خصوصًا عندما يعمل فريق من المطورين على المشروع.
7. نظام التحقق من البيانات Validation
بيانات المستخدمين يجب ألا يتم قبولها بشكل عشوائي.
إذا كان لديك نموذج لإنشاء حساب، فقد يحتاج المستخدم إلى إدخال:
- الاسم.
- البريد الإلكتروني.
- كلمة المرور.
يجب أن نتأكد مثلًا من أن البريد الإلكتروني مكتوب بصيغة صحيحة، وأن كلمة المرور تحقق الشروط المطلوبة.
Laravel يوفر نظام Validation قويًا يساعدك على التحقق من البيانات بطريقة منظمة.
8. Authentication
تسجيل المستخدمين وتسجيل الدخول من أكثر الوظائف شيوعًا في تطبيقات الويب.
Laravel يوفر أدوات تساعد المطورين على بناء أنظمة المصادقة وإدارة المستخدمين.
ويمكن استخدام هذه الأنظمة في:
- تسجيل الدخول.
- تسجيل الحسابات.
- تسجيل الخروج.
- حماية الصفحات.
- إدارة المستخدمين.
وسنتعرف على هذه المواضيع بالتفصيل في الدروس القادمة.
9. Middleware
Middleware من المفاهيم المهمة جدًا في Laravel.
يمكن اعتبار Middleware طبقة تمر من خلالها الطلبات قبل الوصول إلى الجزء المطلوب من التطبيق.
على سبيل المثال، إذا كانت لديك صفحة خاصة بالمستخدمين المسجلين فقط، يمكنك استخدام Middleware للتأكد من أن المستخدم قام بتسجيل الدخول.
إذا كان مسجلًا، يسمح له بالوصول إلى الصفحة.
أما إذا لم يكن مسجلًا، فيمكن توجيهه إلى صفحة تسجيل الدخول.
10. دعم بناء APIs
Laravel لا يستخدم فقط لإنشاء صفحات الويب التقليدية.
يمكنك أيضًا استخدامه لبناء REST APIs.
وهذا مهم جدًا في التطبيقات الحديثة، لأن الواجهة الأمامية قد تكون مبنية باستخدام تقنيات مثل:
- React.
- Vue.
- Angular.
- تطبيقات Android.
- تطبيقات iOS.
ويمكن لهذه التطبيقات التواصل مع Laravel من خلال API.
لذلك تعلم Laravel لا يقتصر على إنشاء صفحات HTML، وإنما يمكنك استخدامه لبناء أنظمة خلفية Backend متكاملة.
ما معنى Backend؟
لفهم Laravel بشكل صحيح، يجب أن نتعرف على مصطلح Backend.
في تطبيقات الويب لدينا عادة قسمان أساسيان:
Frontend
وهو الجزء الذي يراه المستخدم ويتفاعل معه، مثل:
- الأزرار.
- القوائم.
- الصور.
- النصوص.
- النماذج.
وغالبًا يستخدم فيه HTML وCSS وJavaScript وأطر عمل JavaScript الحديثة.
أما:
Backend
فهو الجزء المسؤول عن منطق التطبيق ومعالجة البيانات والتعامل مع قاعدة البيانات والمستخدمين والصلاحيات وغيرها.
Laravel يستخدم بشكل أساسي في بناء الـ Backend.
ما هو MVC؟
من أهم المفاهيم التي ستسمع عنها أثناء تعلم Laravel هو مفهوم MVC.
MVC اختصار لـ:
Model - View - Controller
وهو نمط معماري يساعد على تنظيم التطبيق وفصل أجزاء مختلفة من الكود عن بعضها.
لنشرح كل جزء.
Model
الـ Model مسؤول بشكل أساسي عن التعامل مع البيانات والمنطق المرتبط بها.
على سبيل المثال، إذا كان لدينا موقع مقالات، فقد يكون لدينا Model يسمى:
Article
ويمكن لهذا النموذج التعامل مع بيانات المقالات الموجودة في قاعدة البيانات.
View
الـ View هو الجزء الذي يعرض البيانات للمستخدم.
في Laravel غالبًا نستخدم Blade لإنشاء Views.
مثلًا يمكن أن يكون لدينا ملف:
article.blade.php
وظيفته عرض تفاصيل المقال للمستخدم.
Controller
الـ Controller يعمل كحلقة وصل بين الطلبات والنماذج والواجهات.
فعندما يطلب المستخدم صفحة معينة، يمكن للـ Controller أن يقوم بجلب البيانات من Model، ثم يرسلها إلى View لعرضها.
يمكن تصور العملية بشكل مبسط:
المستخدم ↓ Route ↓ Controller ↓ Model ↓ Database ↓ Controller ↓ View ↓ المستخدم
هذه الصورة المبسطة ستساعدك على فهم طريقة عمل Laravel أثناء تقدمك في الكورس.
مثال بسيط على MVC
لنفترض أننا نبني موقعًا للمقالات.
المستخدم يدخل إلى:
/articles/5
يصل الطلب إلى Route مناسب.
بعد ذلك يقوم Route باستدعاء Controller.
الـ Controller يعرف أن المستخدم يريد المقال رقم 5.
فيطلب من Model جلب المقال من قاعدة البيانات.
بعد الحصول على البيانات، يرسلها Controller إلى View.
ثم تقوم View بعرض المقال للمستخدم.
بهذه الطريقة يصبح لكل جزء من التطبيق دور واضح.
وهذا أحد أسباب سهولة تطوير المشاريع الكبيرة باستخدام Laravel.
ما الذي يمكن بناؤه باستخدام Laravel؟
قد يعتقد البعض أن Laravel يستخدم فقط لإنشاء مواقع بسيطة، وهذا غير صحيح.
يمكن استخدام Laravel لبناء العديد من أنواع التطبيقات.
على سبيل المثال:
- المدونات يمكن إنشاء نظام متكامل لإدارة المقالات والتصنيفات والوسوم والتعليقات والمستخدمين.
- المتاجر الإلكترونية يمكن بناء متجر يحتوي على المنتجات والمستخدمين والسلة والطلبات والدفع وغيرها.
- أنظمة إدارة المحتوى يمكن بناء نظام يسمح للمستخدم بإدارة صفحات الموقع والمقالات والصور والمستخدمين.
- لوحات التحكم يمكن إنشاء Dashboards لإدارة البيانات والمستخدمين والإحصائيات.
- أنظمة الحجز يمكن استخدام Laravel لبناء أنظمة حجز المواعيد والفنادق والخدمات وغيرها.
- APIs يمكن بناء Backend كامل لتطبيقات الهاتف أو تطبيقات الويب الحديثة.
- أنظمة الشركات يمكن بناء أنظمة لإدارة الموظفين والعملاء والفواتير والمخزون وغيرها.
إذن Laravel ليس مجرد أداة لإنشاء صفحات ويب، وإنما يمكن استخدامه لبناء تطبيقات ويب متكاملة.
هل Laravel مناسب للمبتدئين؟
نعم، ولكن هناك نقطة مهمة.
Laravel نفسه سهل نسبيًا، لكن تعلمه يصبح أصعب إذا لم تكن لديك أساسيات PHP.
لذلك إذا كنت جديدًا تمامًا في البرمجة، فمن الأفضل أن تتعلم أساسيات:
- المتغيرات.
- أنواع البيانات.
- الشروط.
- الحلقات.
- الدوال.
- المصفوفات.
- البرمجة الكائنية OOP.
- التعامل مع قواعد البيانات.
- أساسيات SQL.
لا تحتاج إلى أن تكون خبيرًا في PHP حتى تبدأ Laravel، ولكن كلما كانت أساسياتك أقوى، أصبح تعلم Laravel أسهل بكثير.
لماذا يفضل المطورون Laravel؟
هناك عدة أسباب وراء انتشار Laravel.
أولًا، يوفر إطار عمل منظمًا للمشاريع.
ثانيًا، يحتوي على الكثير من الأدوات الجاهزة.
ثالثًا، يجعل التعامل مع قواعد البيانات أسهل من خلال Eloquent.
رابعًا، يوفر أنظمة جاهزة أو أدوات قوية لمهام شائعة مثل التحقق من البيانات والمصادقة والتعامل مع الملفات والبريد والـ APIs.
خامسًا، يتميز بوجود مجتمع كبير من المطورين والعديد من المصادر التعليمية.
كما أن Laravel يتطور باستمرار ويقدم تحسينات وأدوات جديدة مع مرور الوقت.
Laravel والإصدارات
من المهم أن تعرف أن Laravel يتطور باستمرار، ويتم إصدار نسخ جديدة منه مع تحسينات وإضافات وتحديثات أمنية.
لذلك عندما تتعلم Laravel، لا تعتمد فقط على نسخ قديمة من الدروس أو الأكواد الموجودة على الإنترنت.
يجب دائمًا الانتباه إلى إصدار Laravel الذي تستخدمه، لأن بعض التفاصيل والأوامر قد تختلف بين الإصدارات.
وخلال هذا الكورس سنحاول كتابة الأمثلة بطريقة حديثة ومنظمة قدر الإمكان.
هل يجب أن أتعلم HTML وCSS وJavaScript قبل Laravel؟
إذا كان هدفك تطوير تطبيقات ويب كاملة، فمن المفيد جدًا أن تتعلم أساسيات Frontend.
أنت لا تحتاج إلى أن تكون محترفًا في تصميم الواجهات قبل Laravel، ولكن يجب أن تفهم HTML وCSS بشكل جيد إلى حد معقول.
أما JavaScript فهي مهمة جدًا إذا كنت تريد بناء تطبيقات تفاعلية ومتقدمة.
ومع ذلك، يمكنك البدء بتعلم Laravel بالتوازي مع تطوير مهاراتك في Frontend.
ماذا سنبني خلال الكورس؟
بدلًا من دراسة Laravel بشكل نظري فقط، سنحاول الانتقال تدريجيًا من المفاهيم البسيطة إلى المشاريع العملية.
سنبدأ بتعلم كيفية إنشاء مشروع Laravel وفهم الملفات والمجلدات.
بعد ذلك سنتعلم Routes وControllers وViews وBlade.
ثم ننتقل إلى قواعد البيانات وMigrations وModels وEloquent.
بعد ذلك سنبني نظام CRUD كامل.
ثم نتعلم المستخدمين وتسجيل الدخول والصلاحيات ورفع الملفات وغيرها.
وفي المراحل المتقدمة سننتقل إلى APIs وAuthentication وQueues وCaching والاختبارات وتحسين الأداء.
وفي نهاية الكورس سيكون لدينا أساس قوي يسمح لك بالبدء في بناء مشاريع Laravel حقيقية.
نصائح مهمة قبل البدء في الكورس
لا تحفظ الكود
أكبر خطأ يمكن أن يقع فيه المبتدئ هو محاولة حفظ الأوامر البرمجية.
هدفك ليس أن تحفظ كل أمر في Laravel.
الهدف هو أن تفهم:
لماذا نستخدم هذا الأمر؟
ومتى نستخدمه؟
وكيف نبحث عن الطريقة الصحيحة لاستخدامه؟
حتى المطورون المحترفون يعودون إلى التوثيق الرسمي ومحركات البحث عند الحاجة.
طبق بنفسك
لا تكتفِ بقراءة الدرس.
افتح جهاز الكمبيوتر واكتب الأكواد بنفسك.
حتى لو كان الكود موجودًا أمامك، قم بكتابته وتجربته.
البرمجة مهارة عملية، وكلما كتبت وجربت أكثر، أصبحت أفضل.
لا تخف من الأخطاء
عندما يظهر لك خطأ أثناء البرمجة، لا تعتبر ذلك فشلًا.
الأخطاء جزء طبيعي جدًا من عملية تطوير البرمجيات.
المطور الجيد ليس الشخص الذي لا يرى الأخطاء، وإنما الشخص الذي يستطيع قراءة الخطأ وفهم سببه وإصلاحه.
ماذا تعلمنا في هذا الدرس؟
في هذا الدرس تعرفنا على Laravel من البداية، وتعلمنا أنه:
- إطار عمل Framework مبني باستخدام PHP.
- ليس لغة برمجة مستقلة.
- يستخدم لبناء تطبيقات ومواقع الويب.
- يساعد على تنظيم المشاريع.
- يوفر أدوات جاهزة للعديد من المهام.
- يعتمد على مفاهيم مهمة مثل MVC.
- يحتوي على Blade لإنشاء الواجهات.
- يحتوي على Eloquent للتعامل مع قواعد البيانات.
- يوفر Routing وMiddleware وValidation وغيرها.
- يمكن استخدامه لبناء REST APIs.
- مناسب لبناء المشاريع الصغيرة والكبيرة.
- يحتاج إلى أساسيات PHP لفهمه بشكل جيد.
وأصبح لدينا الآن تصور مبدئي عن البيئة التي سنعمل فيها خلال بقية الكورس.
أسئلة شائعة
هل Laravel لغة برمجة؟
لا. Laravel إطار عمل Framework مكتوب باستخدام PHP.
هل يجب أن أتعلم PHP قبل Laravel؟
نعم، يفضل أن تتعلم أساسيات PHP على الأقل قبل الدخول بعمق في Laravel.
هل Laravel مجاني؟
نعم، Laravel إطار عمل مفتوح المصدر ويمكن استخدامه في المشاريع.
هل يمكن استخدام Laravel لبناء متجر إلكتروني؟
نعم، يمكن استخدام Laravel لبناء Backend ونظام متكامل للمتجر الإلكتروني.
هل Laravel يستخدم فقط مع MySQL؟
لا. يمكن لـ Laravel التعامل مع عدة أنظمة لقواعد البيانات، وليس مقتصرًا على MySQL.
هل يمكن استخدام Laravel لإنشاء API؟
نعم، Laravel مناسب جدًا لبناء REST APIs والتطبيقات التي تعتمد على Backend مركزي.
Laravel هو واحد من أهم أطر العمل التي يمكنك تعلمها إذا كنت ترغب في تطوير تطبيقات ويب باستخدام PHP.
قوة Laravel لا تأتي فقط من الأدوات التي يوفرها، وإنما أيضًا من الطريقة المنظمة التي يساعدك بها على بناء المشروع.
وبمجرد أن تفهم المفاهيم الأساسية مثل Routes وControllers وModels وViews وEloquent وMiddleware، ستبدأ في رؤية الصورة الكاملة لطريقة عمل تطبيق Laravel.
لكن التعلم الحقيقي سيبدأ في الدرس القادم.
في الدرس الثاني سننتقل من الكلام النظري إلى العمل الفعلي، وسنقوم بتجهيز بيئة التطوير المطلوبة، ثم نتعرف على المتطلبات التي يحتاج إليها Laravel، ونقوم بإنشاء أول مشروع Laravel على جهاز الكمبيوتر، ونستعرض طريقة تشغيله والوصول إليه من المتصفح.
إذا كنت مستعدًا، انتقل إلى الدرس التالي وابدأ ببناء أول مشروع Laravel لك.
