تعتبر لغة PHP اليوم من اكثر لغات الويب استخدامًا على الانترنت والسبب فى ذلك يرجع إلى عدة عوامل اهمها اعتماد نظم ادارة محتوي شهيرة مثل وردبريس عليها وكذلك اطر عمل شهيرة مثل لارافيل المبنية على PHP.
محتوي المقال
ماذا تعنى كلمة اطر عمل Framework
قبل أن نغوص في شرح Laravel ، نحتاج أن نفهم ما هو اطار العمل.
بشكل عام ، إطار العمل عبارة عن مجموعة من المفاهيم والخطوط العريضة والاكواد والتى تستخدم لبناء شيء مفيد.
فبدل ما اعادة اختراع العجلة كل مرة عندما تقوم ببناء موقع , فتقوم باستخدام اطار عمل يوفر عليك الوقت والجهد.
اطار العمل فى لغات البرمجة تعطى للمطور امكانية اضافة الميزات إلى المشروع دون الحاجة للتعديل على الكود الاصلى لاطار العمل.
وتتم اضافة الميزات للمشروع عن طريق اضافة الاكواد عن طريق معايير ثابتة محددة من اطار العمل.
ولاستخدام اطر العمل الكثير من المميزات هذه بعضها:
- تقليل التعقيدات حيث يسمح اطار العمل للمطور بتنظيم الكود وبالتالى تفتيت المشكلات المعقدة إلى مشاكل اصغر
- سهولة الاختبار واكتشاف الاخطاء حيث يتم تصميم اطار العمل من قبل المطورين الاصليين واضعين فى الاعتبار اظهار اين حدثت المشكلة تمامًا ومتى حدثت بالتحديد
- سهولة فهم كود شخص اخر بسبب المعايير الثابتة فى كتابة الكود والتى يستخدمها الجميع فى كتابة مشروعتهم , فبالتالى يسهل فهم مشروع شخص اخر لنفس اطار العمل وهذه من اهم المميزات لانك قد تضطر للعمل فى فريق من المبرمجين ففى حالة استخدام اطار عمل له معايير ثابتة سيفهم الجميع المشروع.
- القابلية للتوسع حيث تسمح اطر العمل للمطور بسهولة اضافة الميزات للمشروع عند الحاجة.
ماهى لارافيل Laravel
يعد Laravel أحد أكثر أطر PHP استخدامًا في العالم لإنشاء تطبيقات الويب وتشمل المشروعات الصغيرة والكبيرة.
Laravel هي اختيار المطورين المحترفين بسبب أدائها وميزاتها وقابليتها للتطوير.
تتبع Laravel هيكل MVC مما يجعلها سهلة التعلم.
لارافيل حلم لمطورى الويب لانها توفر لهم الكثير من المميزات المدمج بيها والتى يحتاجها اي مطور لتطوير تطبيق ويب مثل authentication و mail و sessions وغيرها الكثير.
تم إنشاء Laravel بواسطة Taylor Otwell في عام 2011 ، ومنذ ذلك الحين قام بتطوير هذا الإطار كثيرًا وجعله متوافقًا مع أحدث تقنيات الويب.
لارافيل Laravel فى سوق العمل
تعتبر لارافيل إحدى الإطارات الأكثر استخدامًا وشعبيةً في عالم تطوير تطبيقات الويب بلغة PHP، وهذا ما يجعلها مفيدة جدًا في سوق العمل.
تستخدم العديد من المواقع الكبرى لارافيل في تطوير تطبيقاتها الخاصة، ويبحث العديد من أصحاب الأعمال والشركات عن المطورين الذين يمتلكون خبرة ومهارات في استخدام لارافيل لتطوير تطبيقاتهم ومواقعهم الإلكترونية.
اهم ماتقدمه لارافيل Laravel
النماذج Models
في Laravel ، النماذج (Models) هي الكلاسات التي تمثل الجداول في قاعدة البيانات. تُستخدم النماذج في Laravel للوصول إلى البيانات وتحديثها في قاعدة البيانات بشكل أكثر كفاءة وسهولة.
تقوم Models في Laravel بتوفير واجهة برمجية للتفاعل مع قاعدة البيانات دون الحاجة إلى كتابة اوامر SQL.
تعرف النماذج في Laravel بشكل افتراضي في مجلد app/Models. ويمكن إنشاء نموذج جديد باستخدام الأمر php artisan make:model ModelName
حيث يتم استبدال ModelName باسم النموذج الذي تريد إنشاؤه.
بالإضافة إلى الوظائف الأساسية التي تقدمها النماذج، يمكن تعريف العلاقات بين النماذج في Laravel، مثل العلاقات على سبيل المثال العلاقة (واحد إلى واحد) مثلًا العلاقة بين جدول المستخدمين وجدول البروفيل الذى يتحتوى على بيانات إضافية عن المستخدمين, وايضًا العلاقة (واحد إلى الكثير One to Many ) مثل العلاقة بين الكاتب والمقالات فكل كاتب له مجموعة من المقالات والعلاقة (الكثير إلى الكثير Many To Many) مثل العلاقة بين المستخدمين والادوار Roles فلكل مستخدم مجموعة من الأدوار وفى نفس الوقت الدور الواحد يمكن أن ينتمى إلى أكثر من مستخدم فى نفس الوقت.
View فى لارافيل
View في Laravel هي العنصر الذي يمثل واجهة المستخدم في التطبيق. تمثل الـ View عادةً صفحة HTML تحتوي على العناصر المختلفة مثل النصوص والصور والنماذج والروابط وغيرها من العناصر التي يراها المستخدم عند استخدام التطبيق.
يتم إنشاء View في Laravel باستخدام الملفات التي تحتوي على HTML وأيضًا بعض العلامات المميزة التي تستخدم في Laravel. على سبيل المثال، يمكن استخدام علامة {{ }}
لإدراج قيم متغيرات PHP في الصفحة. كما يمكن استخدام علامة @
لتمثيل تعليمات PHP في الصفحة.
عند إنشاء View في Laravel، يتم تمرير البيانات إلى الـ View باستخدام مصفوفة تحتوي على البيانات التي يجب تمريرها. يتم ذلك عادةً باستخدام دالة view()
المتاحة في Laravel، والتي تتلقى اسم الملف الذي يجب عرضه، ومصفوفة تحتوي على البيانات التي يجب تمريرها إلى هذا View.
Controller المتحكم فى لارافيل
Controller في Laravel هو العنصر الذي يدير الطلبات المرسلة من المتصفح إلى التطبيق ويربط بين الـ Model والـ View. يعتبر Controller مسؤولًا عن توجيه البيانات المطلوبة من قاعدة البيانات إلى الـ View المناسبة، ويعد واجهة مستخدم بسيطة لاستخدام واجهة برمجة التطبيقات (API).
يتكون Controller في Laravel عادةً من مجموعة من الدوال (الوظائف) التي يتم استدعاؤها بناءً على الطلبات التي تصل إلى التطبيق. عند إنشاء Controller جديد، يتم إنشاؤه باستخدام الأمر make:controller
على سبيل المثال الأمر التالى لإنشاء Controller للمستخدم User.
php artisan make:controller UserController
اداة Artisan
هذه الاداة تساعد فى عملية التطوير وهى اداة يتم استخدامها عن طريق terminal او CMD فى Windows حيث بكتابة اوامر بسيطة يمكنها توفير الكثير من الوقت.
يمكن استخدام أداة Artisan لتوليد الأكواد والملفات التي تحتاجها التطبيقات المختلفة، مثل توليد نماذج جديدة Models، وتحديث قاعدة البيانات، وإعدادات البريد الإلكتروني، والتحكم في الصلاحيات، وغيرها الكثير.
كما يمكن للمطورين إنشاء أوامر مخصصة باستخدام Artisan، مما يتيح لهم تخصيص وتعديل الأوامر الجاهزة أو إضافة أوامر جديدة تلبي احتياجات التطبيق الخاص بهم.
يمكن تشغيل أداة Artisan بسهولة عن طريق فتح نافذة الأوامر وكتابة php artisan
، وبعدها يمكن تنفيذ الأوامر المختلفة عن طريق إضافة الأمر المناسب لها.
على سبيل المثال php artisan make:model User وهذا الأمر يستخدم لإنشاء نموذج Model جديد في Laravel بالاسم “User”، وبعد تشغيل هذا الأمر، سيتم إنشاء ملف جديد بالاسم “User.php” في المسار “app/Models” في تطبيق Laravel الخاص بك.
عملية Authentication
تسجيل الدخول ونظام العضويات هى عملية اساسية فى تطبيقات الويب اليوم , يمكنك مع لارافيل استخدام النظام المدمج معها بكل سهولة.
تقدم Laravel أيضًا شروحات مفيدة لتنفيذ نظام Authentication الخاصة بك.
التخزين المؤقت Caching
التخزين المؤقت هو تقنية لتخزين البيانات في موقع تخزين مؤقت بحيث يمكن استرجاعها بسرعة عند الحاجة.
يتم استخدام التخزين المؤقت في الغالب لزيادة أداء التطبيق وتقليل وقت المعالجة.
لارافيل تقوم بحفظ نسخ مؤقتة من Views و Routes وذلك لتسريع عملية معالجة الطلبات من المستخدمين.
التوجيه Routing
بمعنى ان رابط معين يأتى بنتائج معينة على سبيل المثال domain.com/category/cars يرجع بجميع المقالات فى تصنيف سيارات.
ادارة Routing فى لارافيل هى عملية بسيطة جدًا ولها الكثير من المميزات.
الاختبار وتصحيح الأخطاء
تم تصميم لارافيل مع الوضع فى الاعتبار اختبار وتصحيح الاخطاء لتسهل على المطورين سهولة اكتشاف الاخطاء وتصحيحها.
محرك القالب Template engine
من اهم المميزات الموجودة فى لارافيل ويسمى Blade فى لارافيل.
يسمح Blade بانشاء Layouts معقدة بكل سهولة والفائدة الاساسية للLayout هى عدم تكرار الاكواد الخاصة بتصميم الصفحات واعادة استخدام نفس الكود فى كل الصفحات ذات نفس التصميم.
التعامل مع قواعد البيانات
بدلًا من كتابة اوامر SQL تأتى لارافيل بالكثير من الدوال المساعدة التى تقوم باداء العمليات على Database بكل سهولة دون الحاجة إلى اعادة كتابة اوامر SQL مرارًا وتكرارًا.
دعم قواعد البيانات المختلفة عن طريق Eloquent ORM
يعتمد اطار Laravel على Eloquent ORM والذي يوفر الدعم لجميع محركات قاعدة البيانات تقريبًا. ولكنه يعمل بشكل مثالي مع MySQL و SQLite. يوفر Laravel شروحات شاملة لجميع دوال Eloquent.
انظمة الملفات File systems
توفر لارافيل الدعم للعديد من انظمة ادارة الملفات. يمكنك استخدام نظام ملفات محلي أو أي نظام سحابى مثل Amazon S3.
يمكنك تحديد نظام الملفات الذي تريد استخدامه من خلال تغيير الخيارات في ملف config / filesystems.php.
الامان Security
يوفر Laravel الاساسيات لإنشاء تطبيقات ويب محمية و آمنة.
تقوم بتخزين كلمات المرور بشكل مشفر بدل من تخزينها فى شكل نص عادى.
Laravel تستخدم BCrytp لتشفير كلمات المرور.
يوفر Laravel الحماية من هجمات SQL injection وأيضًا تنقية جميع مدخلات للمستخدم.
كما توفر آلية سهلة للتحقق من المدخلات للمستخدم على سبيل المثال التأكد من ان حقل معين يحتوي على بريد الكترونى.
نظام تهجير البيانات او Migration
يوفر Laravel نظام الترحيل تمامًا مثل Ruby on Rails لإنشاء هياكل قواعد البيانات. يمكنك استخدام لارافيل لكتابة Migration الذي سينشئ بنية قاعدة البيانات الخاصة بك بدلاً من استخدام SQL.
يمكنك إنشاء قواعد البيانات والجداول باستخدام عمليات الترحيل. إذا كنت تريد تغيير عمود فى الجدول ، فلن تحتاج إلى تكرار إنشاء جدول مرة أخرى بدلاً من ذلك ، يمكنك تشغيل عملية ترحيل جديدة.
نظام Localization
يتيح لك اطار Laravel إنشاء تطبيقات متعددة اللغات في نفس الوقت الذي تقوم فيه بإنشاء التطبيق الخاص بك.