XHP

XHP هي إضافة للغة PHP و Hack طُوّرت في شركة Meta (المعروفة سابقًا باسم Facebook) لتمكين استخدام صيغة XML بهدف إنشاء عناصر HTML مخصصة وقابلة لإعادة الاستخدام . وهي متاحة كمشروع مفتوح المصدر على GitHub وكوحدة Homebrew لإصدارات PHP 5.3 و5.4 و5.5. كما طوّرت Meta إضافة مماثلة للغة JavaScript تُسمى JSX .

الأصول

استُلهمت لغة XHP بشكلٍ جزئي من لغة ECMAScript الخاصة بـ XML، وقد أنشأها مارسيل لافيرديه. طُوّرت في البداية لفيسبوك لايت كطبقة جديدة لعرض واجهة المستخدم، ثم نُقلت لاحقًا إلى منصة الويب الخاصة بفيسبوك وتطبيقات الجوال، كما دُمجت في HipHop for PHP . أُتيحت للجمهور في فبراير 2010 [ 2 ] ، وحتى عام 2020، كانت تُشكّل غالبية صفحات HTML المُولّدة من جانب الخادم لتطبيقات فيسبوك.

في عام 2020، أعادت فيسبوك تصميم تطبيقها الرئيسي على الويب [ 3 ] ليعمل في الغالب على مكونات React، ويتم عرضه من جانب الخادم ومن جانب العميل. لا يزال XHP مستخدمًا في بعض أجزاء فيسبوك، ولكنه تقنية قديمة يجري التخلص منها تدريجيًا.

فوائد

يوفر XHP واجهة برمجة واجهة مستخدم أكثر وضوحًا عند إخراج HTML في PHP، ولكنه يتمتع أيضًا ببعض المزايا الهندسية.

التحقق من صحة بنية HTML في وقت التحليل
يقوم XHP بالتحقق من صحة بناء الجملة وبنية شجرة المستند بأكملها عند العرض وسيطرح استثناءً إذا لم يتم إغلاق عنصر بشكل صحيح، أو كان لديه عناصر فرعية غير صالحة، أو كان لديه سمة غير صالحة، أو كان يفتقر إلى العناصر الفرعية أو السمات المطلوبة.
حماية تلقائية من هجمات XSS
لأن كل عملية عرض الصفحة تتم داخل XHP، وهو يعرف ما هو HTML وما هو المحتوى، فإن XHP يقوم بتجاهل كل المحتوى دون أي جهد خاص من المبرمج.
تغيير الكائن
يتم تخزين كائنات XHP ككائنات PHP قياسية، لذا يمكن التلاعب بها من خلال واجهة برمجة تطبيقات تشبه DOM، والتي تتضمن طرقًا مثل setAttribute()، getAttribute()، appendChild()، والعديد من الطرق الأخرى قبل أو أثناء العرض.
HTML مخصص
بدلاً من كتابة وظائف لإنشاء HTML، أو التبديل بين PHP، يمكن تعريف عناصر XHP المخصصة ودمجها مع عناصر HTML القياسية التي ستعمل على تجريد هياكل HTML الشائعة.

انظر أيضاً

مراجع

  1. "الإصدارات" . GitHub . 2023-02-03.
  2. لافيرديت، مارسيل. "XHP: طريقة جديدة لكتابة PHP" . الهندسة في ميتا . شركة ميتا بلاتفورمز . تم الاطلاع عليه بتاريخ 10 فبراير 2023 .
  3. ن. سامرز (29 أبريل 2020). "لماذا أعادت فيسبوك تصميم موقع Facebook.com؟" . إنجادجيت .