Docsyard Demo

PHP


ما هو 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 عن طريق تطبيق أوامر مخصصة جديدة ، والتي ، على سبيل المثال ، يمكن استخدامها لأتمتة المهام المتكررة الخاصة بالتطبيق.

PHP

بي إتش بي (PHP: Hypertext Preprocessor، 'الصفحة الرئيسية الشخصية كانت مجموعة من التطبيقات التي كتبت باستخدام لغة بيرل أطلق راسموس اسم Personal Home Page Tools ("المعالج المسبق للنصوص الفائقة") هي لغة برمجة نصية صممت أساسا من أجل استخدامها لتطوير وبرمجة تطبيقات الويب. كما يمكن استخدامها لإنتاج برامج قائمة بذاتها وليس لها علاقة بالويب فقط.

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

تاريخية

PHP/FI

طبيقات، لأنه احت كانت تسمى وقتها بـ PHP/FI وفي الحقيقة لم تكن لغة برمجة وقتها وانما كانت مجموعة من التطبيقات التي كتبت باستخدام لغة بيرل أطلق راسموس اسم Personal Home Page Tools على هذه التطبيقات، لأنه احتاج فيما بعد إلى تطبيقات أكثر فائدة قام راسموس بكتابة تطبيق أكبر باستخدام لغة سي حيث أصبحت قادرة على الاتصال بقواعد البيانات كما أنها كانت تسمح للمستخدمين بتطوير تطبيقات مواقع ديناميكية بسيطة، اختار راسموس ان تكون الشيفرة المصدرية الخاصة بـ PHP/FI متوفره للجميع لذا كان يمكن لأي شخص ان يستخدمها ويقوم بتحسينها والمشاركة في حل اخطاءها ومشاكلها.

كانت PHP/FI وقتها تحوي على بعض الوظائف المتوفرة بالإصدارات الحالية من اللغة، كما أن المتغيرات كانت تشبه متغيرات بيرل، وكانت تركيبها النحوي يشبه بيرل بالرغم من بساطتها ومحدودياتها.

في عام 1997 تم إطلاق الإصدار 2.0 من PHP/FI، حيث بلغ عدد مستخدميها آنذاك 50,000 نطاق، وكان هناك مجموعة من الأشخاص الذين يشاركون في التطوير، وتم إطلاق الإصدار الرسمي من 2.0 في شهر نوفمبر من نفس العام بعد العديد من الإصدارات التجريبية بيتا.

بي إتش بي 3

في عام 1997 تم إعادة كتابة PHP/FI على يد زيف سوراسكي، أندي جتمانز بعدما وجدوا ان PHP/FI 2.0 ليست قوية بما فيه الكفاية من أجل كتابة تطبيق تجارة إلكترونية والذي كانوا يعملون عليه كمشروع تخرج لجامعتهم، كان هناك تعاون بينهم وبين مؤسس اللغة راسموس ليردورفعلى ان تكون PHP 3.0 هي النسخة الرسمية بعد PHP/FI.

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

وفي هذا الإصدار تم تغيير اسم اللغة ووضعها تحت اسم جديد وهو بي إتش بي (بدون FI) والذي كان يحمل اختصارا لمعنى جديد مختلف عن الإصدار السابق والمعنى هو "PHP: Hypertext Preprocessor".

تم إطلاق بي إتش بي 3.0 في يونيو 1998 بعد 9 أشهر من الاختبارات.

 

4 بي إتش بي  

في عام 1998، وبعد الانطلاق الرسمي لـ بي إتش بي 3.0 بقليل بدأ زيف سوراسكي وأندي جتمانز بإعادة كتابة أساس لغة بي إتش بي وكان الهدف من ذلك هو تحسين الأداء للبرامج المعقدة والضخمة وتحسين قابلية اللغة للتوسع.

المحرك الجديد الذي ظهر بعد إعادة الكتاب تم تسميته بـ محرك زند واسم "زند" مأخود من أوائل حروف أسماء مطوريه، ونجحوا في تحقيق اهدافهم عن طريق هذا المحرك، وتم الإعلان عنه في عام 1999.

تعتمد بي إتش بي 4.0 على هذا المحرك وتم الإعلان عن هذا الإصدار من بي إتش بي في مايو 2000، بالإضافه إلى تحسين الأداء في هذا الإصدار احتوى كذلك على مجموعة جديدة من الميزات مثل دعمه لعدد أكبر من خوادم الوب، الجلسات، طرق آمنة جديدة لمعالجة دخل المستخدم وغيرها.

وقد تم إعلان إيقاف تطوير ودعم بي إتش بي 4 في 13 يوليو، 2007.

<?php
$page_title = "My website";
?>
<html>
 <head>
 <title>
<?php
echo $page_title;
?>
 </title>
 </head>
 <body>
 Hello
 </body>
</html>

 

الاستخدام

غالبا ما تعمل لغة بي إتش بي على خادم ويب، كما يمكن استخدامها 

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

 
تقوم بي إتش بي أساسا بأخذ الملف الذي يحتوي على اوامر البي إتش بي (ملفات.php) كـ مدخل وتقوم بإخراج بيانات قابلة للعرض.

في الإصدار الرابع من بي إتش بي، تقوم بتحويل الملفات المكتوبة باستخدام البي إتش بي إلى bytecode لمعالجتها عن طريق محرك زند،وفي الإصدار الخامس تقدمت لغة بي إتش بي بتقنيات عالية جدا وكان اخر اصدار من النسخة الخامسة هو 5.5.9.

استخدامها ناحية الخادم

في الحقيقة صممت بي إتش بي من أجل استخدامها من ناحية الخادم وبناء تطبيقات ويب تفاعلية، وقد أصبح بناء لامب مشهورا جدا في صناعة الويب كطريقة برمجيات ويب آمنة، غير مكلفة، ويمكن الاعتماد عليها. بي إتش بي مشار إليها كحرف P في LAMP كـ لغة برمجة، بجانب لينكس (L) كـ نظام تشغيل، اباتشي (A) كـ خادم ويب وماي إس كيو إل (M) كنظام إدارة قواعد البيانات. وقد ظهرت أيضا بناءات أخرى ك وامب مستبدلة لينكس بـ ويندوز (W)، ومامب مستبدله لينكس بـ ماك أو اس (M).

يمكن استخدام بي إتش بي مع عدد كبير من أنظمة إدارة قواعد البيانات، وبما انها متوفرة على عدد من نظم التشغيل جعل لها مرونة مكنت بي إتش بي من الانتشار.

استخدامها كسطر أوامر

توفر بي إتش بي كذلك واجهة سطر أوامر، لذا يمكن استخدامها لتطوير مجموعه من البرامج التي تسهل المهام الإدارية لمدراء النظم.

استخدامها ناحية العميل

توفر بي إتش بي مكتبات واجهات مستخدم رسومية مثل جتك+ (عن طريق بي إتش بي-جتكوكيو تي (عن طريق كيوت) مما يجعل تطوير البرامج غير المتعلقة بالويب امرا ممكنا.