Docsyard Demo

ما هو Laravel؟


ما هو Laravel؟

Laravel هو إطار عمل PHP مجاني ومفتوح المصدر ، تم إنشاؤه بواسطة Taylor Otwell ويهدف إلى تطوير تطبيقات الويب وفقًا للنمط المعماري لعرض النماذج (MVC) وبناءً على Symfony. بعض ميزات Laravel هي نظام تعبئة معياري مع مدير تبعية مخصص ، وطرق مختلفة للوصول إلى قواعد البيانات العلائقية ، والأدوات المساعدة التي تساعد في نشر التطبيق وصيانته ، وتوجهه نحو السكر النحوي

التاريخ

أنشأ تايلور أوتويل Laravel كمحاولة لتوفير بديل أكثر تقدمًا لإطار CodeIgniter ، والذي لم يوفر ميزات معينة مثل الدعم المدمج لمصادقة المستخدم والترخيص. تم طرح الإصدار التجريبي الأول من Laravel في 9 يونيو 2011 ، يليه إصدار Laravel 1 لاحقًا في نفس الشهر. تضمنت Laravel 1 دعمًا مدمجًا للمصادقة ، والتعريب ، والنماذج ، ووجهات النظر ، والدورات ، والتوجيه وآليات أخرى ، لكنها تفتقر إلى الدعم لوحدات التحكم التي منعتها من أن تكون إطار عمل MVC حقيقي.

تم إصدار Laravel 2 في سبتمبر 2011 ، مما أتاح تحسينات متنوعة من المؤلف والمجتمع. تضمنت الميزات الجديدة الرئيسية دعم وحدات التحكم ، مما جعل Laravel 2 إطارًا متوافقًا تمامًا مع MVC ، ودعمًا مدمجًا لعكس مبدأ التحكم (IoC) ، ونظام templating يدعى Blade. وكجانب سلبي ، تمت إزالة دعم حزم الطرف الثالث في Laravel 2.

تم إصدار Laravel 3 في فبراير 2012 مع مجموعة من الميزات الجديدة بما في ذلك واجهة سطر الأوامر (CLI) المسماة Artisan ، ودعم مدمج لمزيد من أنظمة إدارة قواعد البيانات ، وترحيل قاعدة البيانات كشكل من أشكال التحكم في الإصدار لتخطيطات قاعدة البيانات ، ودعم للمعالجة الأحداث ، ونظام التعبئة والتغليف ودعا حزم. زيادة قاعدة مستخدم Laravel وشعبيته اصطففت مع إصدار Laravel 3.

تم إصدار Laravel 4، والذي يحمل الاسم الرمزي Illuminate ، في مايو 2013. تم تصنيعه كإعادة كتابة كاملة لإطار Laravel ، حيث قام بنقل تصميمه إلى مجموعة من الحزم المنفصلة التي تم توزيعها من خلال Composer ، والذي يعمل كمدير حزمة على مستوى التطبيق. حسّن هذا التصميم من قابلية تطبيق Laravel 4 ، والذي تم إرفاقه بجدول إصداره الرسمي الرسمي الذي يمتد لستة أشهر بين الإصدارات البسيطة. تتضمن الميزات الجديدة الأخرى في إصدار Laravel 4 نشر قاعدة البيانات للمجموعات الأولية لقواعد البيانات ، ودعم قوائم انتظار الرسائل ، والدعم المدمج لإرسال أنواع مختلفة من البريد الإلكتروني ، ودعم الحذف المؤجل لسجلات قاعدة البيانات التي تسمى الحذف الناعم.

تم إصدار Laravel 5 في فبراير 2015 نتيجة للتغييرات الداخلية التي انتهت بإعادة ترقيم إصدار Laravel 4.3 في ذلك الوقت في المستقبل. تتضمن الميزات الجديدة في إصدار Laravel 5 دعمًا لجدولة المهام التي يتم تنفيذها بشكل دوري من خلال حزمة تسمى Scheduler ، وهي طبقة تجريدية تسمى Flysystem تتيح استخدام التخزين عن بُعد بنفس طريقة استخدام أنظمة الملفات المحلية ، وتحسين التعامل مع أصول الحزمة من خلال Elixir ، و تبسيط المصادقة التي يتم التعامل معها خارجيًا من خلال حزمة Socialite الاختيارية. قدم Laravel 5 أيضًا هيكل شجرة دليل داخلي جديد للتطبيقات المتقدمة.

في مارس 2015 ،أدرج مسح SitePoint Laravel كإطار عمل PHP الأكثر شعبية.

كان الإصدار 5.1 من Laravel ، الذي تم إصداره في يونيو 2015 ، أول إصدار من Laravel يحصل على دعم طويل الأجل (LTS). تم التخطيط لإصدارات LTS جديدة واحدة كل سنتين.

تم إصدار Laravel 5.3 في 23 أغسطس 2016. تركز الميزات الجديدة في 5.3 على تحسين سرعة المطور من خلال إضافة تحسينات إضافية خارج الصندوق للمهام الشائعة.

تم إصدار Laravel 5.4 في 24 يناير 2017 ، مع العديد من الميزات الجديدة مثل Laravel Dusk ، و Laravel Mix ، و Blade Components and Slots ، و Markdown Emails ، وواجهات تلقائية ، وتحسينات على الطريق ، ورسائل بالدفع العالي للمجموعات ، وغيرها الكثير.

تم إصدار Laravel 5.5 في 30 أغسطس 2017.

تم إصدار Laravel 5.6 في 7 فبراير 2018.

تم إصدار Laravel 5.7 في 4 سبتمبر 2018.

تم إصدار Laravel 5.8 في 26 فبراير 2019.

 

المميزات

تُعد الميزات التالية بمثابة  نقاط تصميم رئيسية لـ Laravel (حيث لا تتم الإشارة على وجه التحديد ، تشير الأوصاف إلى ميزات Laravel 3)

  • توفر الحزم نظام تعبئة معياري منذ إصدار Laravel 3 ، مع ميزات مجمعة متوفرة بالفعل لإضافة سهلة إلى التطبيقات. علاوة على ذلك ، يستخدم Laravel 4 برنامج Composer كمدير تبعية لإضافة حزم PHP الخاصة بالإطار الملحد و Laravel المتاحة من مستودع Packagist.
  • Eloquent ORM (تعيين الكائنات العلائقية) هو تطبيق PHP متقدم لنمط السجل النشط ، ويوفر في الوقت نفسه طرقًا داخلية لفرض قيود على العلاقات بين قواعد البيانات. باتباع نموذج السجل النشط ، يقدم Eloquent ORM جداول قاعدة البيانات كفئات ، مع ربط مثيلات الكائن الخاصة بها بصفوف جدول مفرد.
  • يوفر منشئ الاستعلامات ، المتاح منذ Laravel 3 ، وصولاً مباشرًا إلى قاعدة البيانات البديلة إلى Eloquent ORM. بدلاً من طلب استعلامات SQL ليتم كتابتها مباشرةً ، يوفر باني الاستعلام Laravel مجموعة من الفئات والأساليب القادرة على إنشاء استعلامات برمجيًا. كما يسمح التخزين المؤقت اختيار نتائج الاستعلامات المنفذة.
  • يعد منطق التطبيق جزءًا  لا يتجزأ من التطبيقات المطورة ، ويتم تنفيذه إما عن طريق استخدام وحدات التحكم أو كجزء من إعلانات المسار. يشبه بناء الجملة المستخدم لتعريف منطق التطبيق المنطق المستخدم من قبل Sinatraframework.
  • يحدد التوجيه العكسي العلاقة بين الروابط والطرق ، مما يجعل من الممكن نشر التغييرات اللاحقة على الطرق تلقائيًا في الروابط ذات الصلة. عندما يتم إنشاء الروابط باستخدام أسماء المسارات الحالية ، يتم تلقائيًا إنشاء معرّفات الموارد الموحدة (URIs) بواسطة Laravel.
  • توفر وحدات التحكم المريحة طريقة اختيارية لفصل المنطق وراء تقديم طلبات HTTP GET و POST.
  • يوفر التحميل التلقائي للفصل تحميلًا تلقائيًا لفئات PHP دون الحاجة إلى الصيانة اليدوية لمسارات التضمين. يمنع التحميل عند الطلب إدراج المكونات غير الضرورية ، لذلك يتم تحميل المكونات المستخدمة فعليًا فقط.
  • تعمل أدوات عرض الملحنين كوحدات رمز منطقية قابلة للتخصيص والتي يمكن تنفيذها عند تحميل طريقة عرض.
  • يجمع محرك القوالب النصلية واحدًا أو أكثر من القوالب مع نموذج بيانات لإنتاج طرق عرض ناتجة ، وذلك عن طريق نقل القوالب إلى رمز PHP مؤقتًا لتحسين الأداء. يوفر Blade أيضًا مجموعة من هياكل التحكم الخاصة به مثل البيانات الشرطية والحلقات ، والتي يتم تعيينها داخليًا لنظرائهم في PHP. علاوة على ذلك ، يمكن استدعاء خدمات Laravel من قوالب Blade ، ويمكن تمديد محرك templating نفسه بتوجيهات مخصصة.
  • تتيح حاويات IoC إمكانية إنشاء كائنات جديدة باتباع مبدأ انعكاس التحكم (IoC) ، حيث يستدعي إطار العمل التعليمات البرمجية الخاصة بالتطبيق أو المهمة ، مع إنشاء مثيل اختياري للرجوع إلى كائنات جديدة كإشارة مفردة.
  • توفر عمليات الترحيل نظامًا للتحكم في الإصدار لمخططات قاعدة البيانات ، مما يتيح ربط التغييرات في قاعدة بيانات التطبيق والتغييرات المطلوبة في تخطيط قاعدة البيانات. نتيجة لذلك ، تعمل هذه الميزة على تبسيط نشر وتحديث التطبيقات المستندة إلى Laravel.
  • توفر عملية إنشاء قاعدة البيانات طريقة لتعبئة جداول قاعدة البيانات بالبيانات الافتراضية المحددة التي يمكن استخدامها لاختبار التطبيق أو تنفيذها كجزء من إعداد التطبيق الأولي.
  • يتم توفير اختبار الوحدة كجزء لا يتجزأ من Laravel ،: 61-62 والذي يحتوي في حد ذاته على اختبارات الوحدة التي تكشف عن الانحدارات في الإطار وتمنعها. يمكن تشغيل اختبارات الوحدة من خلال الأداة المساعدة لسطر الأوامر الحرفي المتوفرة.
  • يبسط ترقيم الصفحات التلقائي مهمة تنفيذ ترقيم الصفحات ، مع الاستعاضة عن مناهج التنفيذ اليدوي المعتادة بطرق آلية مدمجة في Laravel.
  • طلب النموذج هو إحدى ميزات Laravel 5 التي تعمل كأساس للتحقق من صحة إدخال النموذج بواسطة مستمعي الأحداث الملزمة داخليًا ، مما يؤدي إلى استدعاء تلقائي لطرق التحقق من صحة النموذج وإنشاء النموذج الفعلي.
  • Homestead - آلة افتراضية Vagrant توفر لمطوري Laravel جميع الأدوات اللازمة لتطوير Laravel مباشرة خارج الصندوق ، بما في ذلك ، Ubuntu و Gulp و Bower وغيرها من أدوات التطوير المفيدة في تطوير تطبيقات الويب كاملة النطاق.

 

حزم الطرف الأول

الحزم الجاهزة للاستخدام  المقدمة من Laravel من خلال Composer و Packagist تشمل ما يلي:

  • يوفر Cashier ، الذي تم تقديمه في Laravel 4.2 ، واجهة لإدارة خدمات فواتير الاشتراك التي تقدمها Stripe ، مثل التعامل مع القسائم وتوليد الفواتير.
  • يسمح SSH ، الذي تم تقديمه في Laravel 4.1 ، بالتنفيذ البرنامجي لأوامر CLI على الخوادم البعيدة باستخدام Secure Shell (SSH) كبروتوكول شبكة مشفر.
  • المجدول ، الذي تم تقديمه في Laravel 5.0 ، هو إضافة إلى الأداة المساعدة لسطر الأوامر Artisan التي تتيح الجدولة البرنامجية للمهام المنفذة بشكل دوري. داخليًا ، تعتمد "المجدول" على البرنامج الخفي cron لتشغيل مهمة حرفي واحدة تقوم بدورها بتنفيذ المهام التي تم تكوينها.
  • نظام Flysystem ، الذي تم تقديمه في Laravel 5.0 ، هو عبارة عن طبقة تجريد لنظام الملفات تتيح استخدام أنظمة الملفات المحلية وخدمات التخزين المستندة إلى مجموعة النظراء التي توفرها Amazon S3 و Rackspace Cloud بشفافية وبالطريقة نفسها.
  • يوفر Socialite ، الذي تم تقديمه في Laravel 5.0 كحزمة اختيارية ، آليات مبسطة للمصادقة مع مختلف مزودي OAuth ، بما في ذلك Facebook و Twitter و Google و GitHub و Bitbucket.

أدوات إضافية

بالإضافة إلى حزم Laravel المضمنة والاختيارية ، تقدم Laravel أيضًا مجموعة مدفوعة من الأدوات والخدمات الإضافية.

لارافيل سبارك

تم تطوير Laravel Spark بواسطة Taylor Otwell ويوفر أدوات إضافية لشركات SaaS عبر الإنترنت للتكامل مع خدمات مثل Stripe وإنتاج الفواتير و Bootstrap 4.0 وتوثيق الفريق. اعتبارًا من فبراير 2019 ، إصدار الحزمة 8.0.

لارافيل فورج

تقدم Laravel أيضًا Laravel Forge لتوفير ونشر تطبيقات PHP غير المحدودة على DigitalOcean و Linode و AWS والمزيد. تتألف ميزاته من إدارة شهادات SSL ، ووظائف cron ، وقوائم الانتظار ، وموازنات التحميل ، والمزيد.

الحرفي CLI

تم تقديم واجهة سطر  الأوامر (CLI) الخاصة بـ Laravel ، والتي تسمى الحرفي ، في البداية في Laravel 3 مع مجموعة محدودة من القدرات. أتاح انتقال Laravel لاحقًا إلى بنية قائمة على الملحن Artisan لدمج مكونات مختلفة من إطار Symfony ، مما أدى إلى توفر ميزات Artisan إضافية في Laravel 4.

يتم تعيين ميزات Artisan إلى أوامر فرعية مختلفة من الأداة المساعدة لسطر الأوامر Artisan ، مما يوفر وظائف تساعد في إدارة وبناء التطبيقات المستندة إلى Laravel. تتضمن الاستخدامات الشائعة للحرفيين إدارة عمليات ترحيل قاعدة البيانات والبذر ونشر أصول الحزمة وإنشاء كود boilerplate لوحدات التحكم والترحيل الجديدة ؛ هذا الأخير يحرر المطور من إنشاء هياكل رمز مناسبة. يمكن أيضًا توسيع وظائف وقدرات Artisan عن طريق تطبيق أوامر مخصصة جديدة ، والتي ، على سبيل المثال ، يمكن استخدامها لأتمتة المهام المتكررة الخاصة بالتطبيق.