بي إتش بي
المحتويات

تعريفًا بالموضوع، بي إتش بي (: Hypertext Preprocessor) («المعالج المسبق للنصوص الفائقة») كانت مجموعة من التطبيقات التي كتبت باستخدام لغة بيرل أطلق راسموس اسم Personal Home Page Tools الصفحة الرئيسية الشخصية هي لغة برمجة نصية صممت أساسًا من أجل استخدامها لتطوير وبرمجة تطبيقات الويب. كما يمكن استخدامها لإنتاج برامج قائمة بذاتها وليس لها علاقة بالويب فقط. وفيما يلي تفاصيل أوسع عن ذلك.
وفي هذا الصدد، بي إتش بي لغة مفتوحة المصدر ويطورها فريق من المتطوعين تحت رخصة بي إتش بي، تدعم البرمجة كائنية التوجه وتركيبها البنيوي يشبه كثيرًا التركيب البنيوي للغة السي، هذا فضلًا عن أنها تعمل على أنظمة تشغيل متعددة مثل لينكس وويندوز.
تاريخ
الدعم الفني
من جهة ثانية، بي إتش بي لديها دليل يحتوي على توثيق لجميع الدوال التي توفرها، إلى جانب إجابة الكثير من الأسئلة يمكن إيجادها بعد عمل بحث بسيط على شبكة الإنترنت، كما أن مستعملي بي إتش بي يساعدون بعضهم البعض عن طريق برامج الدردشة، المنتديات والمجموعات البريدية، والكثير من الأماكن متوفرة لمساعدة المبرمجين المبتدئين في بي إتش بي.
استخدامها ناحية العميل
في هذا الإطار، توفر بي إتش بي مكتبات واجهات مستعمل رسومية مثل جتك+ (عن طريق بي إتش بي-جتك) وكيو تي (عن طريق كيوت) مما يجعل تطوير البرامج غير المتعلقة بالويب أمرا ممكنا.
الكائنات
في هذا الإطار، في PHP 5 تم الإعلان عن الأنواع private وprotected لكل من الدوال والمتغيرات، وتم الإعلان عن الطريقة القياسية في تعريف المشيد والمهدم .
إضافةً إلى ذلك، في PHP 3 تم إضافة أساسيات برمجة كائنية التوجه، وتم إعادة كتابته في PHP 5 من أجل تحسين الأداء وإضافة المزيد من الميزات، في الإصدارات السابقة من بي إتش بي كانت تعامل الكائنات كأنواع بدائية . وكانت نقطة ضعف هذا الأسلوب في أن الكائن كان ينسخ كاملا عندما يتم تكليفه كمتغير أو عندما يتم تمريره إلى الدوال، وقد تم حل هذه المشكلة PHP 5.
الموارد
كذلك، class foo extend كيفية تعريف الصنف foo الذي يرث الصنف bar، وتعريف الدالة العامة mystaticfunc والتي يمكن استدعاءها بالشكل التالي foo::mystaticfunc;
<?php echo 'Wikipedia'?>
ومن جهة أخرى، تقوم PHP بتنفيذ ما هو بين الوسمين <?php و?> فقط، وأي شيء خارج هذا هذين الوسمين فيتم طباعته مباشرة ولا يتم معاملته كشيفرة PHP، تمكن هذه الميزة من إدخال شيفرات الـ PHP داخل شيفرات HTML، مثلا:
- <?php
- $page_title = 'Wikipedia';
- echo $page_title;
- ?>
PHP/FI
وفي هذا الصدد، كانت PHP/FI وقتها تحوي على بعض الوظائف المتوفرة بالإصدارات الحالية من اللغة، كما أن المتغيرات كانت تشبه متغيرات بيرل، وكانت تركيبها النحوي يشبه بيرل بالرغم من بساطتها ومحدودياتها.
كذلك، ظهرت php أولا في سنة 1995 على يد راسموس ليردورف كانت تسمى وقتها بـ PHP/FI وفي الحقيقة لم تكن لغة برمجة وقتها وإنما كانت مجموعة من التطبيقات التي كتبت باستخدام لغة بيرل أطلق راسموس اسم Personal Home Page Tools على هذه التطبيقات، لأنه احتاج فيما بعد إلى تطبيقات أكثر فائدة قام راسموس بكتابة تطبيق أكبر باستخدام لغة سي حيث أصبحت قادرة على الاتصال بقواعد البيانات كما أنها كانت تسمح للمستعملين بتطوير تطبيقات مواقع ديناميكية بسيطة، اختار راسموس أن تكون الشيفرة المصدرية الخاصة بـ PHP/FI متوفرة للجميع لذا كان يمكن لأي شخص أن يستعملها ويقوم بتحسينها والمشاركة في حل أخطاءها ومشاكلها.
من جانب آخر، في عام 1997 تم إطلاق الإصدار 2.0 من PHP/FI، حيث بلغ عدد مستعمليها آنذاك 50,000 نطاق، وكان هناك مجموعة من الأشخاص الذين يشاركون في التطوير، وتم إطلاق الإصدار الرسمي من 2.0 في شهر نوفمبر من نفس العام بعد الكثير من الإصدارات التجريبية بيتا.
PEAR
كذلك، وهو مشروع يهدف لكتابة مكتبات باستخدام بي إتش بي، تكون قابلة لإعادة الاستخدام، تكتب مكتبات هذا المشروع دائما باستخدام البرمجة كائنية التوجه.
بي إتش بي 6
وفي هذا السياق، إزالة دوال ereg واعتماد preg بديل عنها. <هذه مكاتب تنحدر عنها عدة دوال ليست داله واحده فقط>
ازالة خاصية علامات الاقتباس السحريه magic_quotes.
دعم حقيقي لـ يونيكود.
كذلك، بدأ العمل على بي إتش بي 6 عام 2005 بهدف إضافة دعم كامل لترميز يونيكود، لكن المشروع توقف عام 2010 لصعوبات في تنفيذ هذا الدعم. وفي يوليو 2014 صوّت مطوّرو اللغة على تسمية الإصدار الرئيسي التالي «بي إتش بي 7» وتخطي الرقم 6 تجنبًا للخلط مع المشروع الملغى. وكان من الأهداف المعلنة للمشروع:
- ازالة المتغيرات HTTP_*_VARS.
- ازالة الخاصية register_globals.
- ازالة الخاصية safe_mode.
- انظر كذلك
- معايير بي إتش بي الموصى بها
- محرك زند
- محررات بي إتش بي
التركيب النحوي
- مثال لطباعة برنامج Hello World:
- <?php
- echo 'Hello World';
- ?>
- وأيضا بهذا الشكل
Hello
- من نوعية الأعداد بشقيها الأعداد العائمة والاعداد الصحيحة.
- من نوعية الثوابت.
- استدعاء أحد الروتينات الفرعية بشكل مباشر.
- استدعاء أحد الروتينات الفرعية عبر كائن (Object).
ومن جهة أخرى، بي إتش بي لديها ثلاثة أنواع من التعليقات، /* */ والذي يستعمل للتعليقات متعددة الاسطر، // و# والذين يستعملون للتعليقات ذات السطر الواحد.
وفي هذا السياق، المتغيرات تكون مسبوقة بعلامة الدولار - $ - ومن غير الضروري تعريف نوع المتغير، بعكس أسماء الدوال والاصناف، المتغيرات حساسة لحالة الحرف، ومن أجل وضع قيمة للمتغير يتم استخدام علامات الاقتباس المزدوجة - " - أو المفردة - ' - أو بدون أي علامة اقتباس بحيث تكون القيمة في هذه الحالة على إحدى الأشكال التالية:
مقارنة بين لغات البرمجة
- قائمة حزم أباتشي - ماي سيكيول - بي اتش بي
- قائمة محررات بي إتش بي
- معالج القالب
- إكسامب
- المراجع
انتقادات
تنتقد بي إتش بي لمجموعة من النقاط منها:
بي إتش بي لا تحتوي على دعم حقيقي ليونيكود.
تاريخ انطلاق الإصدارات الرئيسية
إضافةً إلى ذلك، بي إتش بي تستعمل ميزة علامات الاقتباس السحرية والتي تحاول تجاهل العلامتين ' و " في النصوص التي تستعمل في قواعد البيانات من أجل منع ثغرات حقن SQL. هذا يؤدي إلى بعض التشويش حيث لا يتم التفريق بين البيانات التي تعالجها هذه الميزة من غيرها التي لا تعالجها.
استخدامها ناحية الخادم
علاوةً على ذلك، وقد ظهرت كذلك بناءات أخرى كوامب مستبدلة لينكس بويندوز (W)، ومامب مستبدلة لينكس بماك أو اس (M).
وفي هذا الصدد، يمكن استخدام بي إتش بي مع عدد كبير من أنظمة إدارة قواعد البيانات، وبما أنها متوفرة على عدد من نظم التشغيل جعل لها مرونة مكنت بي إتش بي من الانتشار.
ومن ناحية أخرى، في الحقيقة صممت بي إتش بي من أجل استخدامها من ناحية الخادم وبناء تطبيقات ويب تفاعلية، وقد أصبح بناء لامب مشهورا جدا في صناعة الويب كطريقة برمجيات ويب آمنة، غير مكلفة، ويمكن الاعتماد عليها. بي إتش بي مشار إليها كحرف P في LAMP كلغة برمجة، بجانب لينكس (L) كنظام تشغيل، أباتشي (A) كخادم ويب وماي إس كيو إل (M) كنظام إدارة قواعد البيانات.
الاستخدام
في هذا الإطار، في الإصدار الرابع من بي إتش بي، تقوم بتحويل الملفات المكتوبة باستخدام البي إتش بي إلى شيفرة البايت لمعالجتها عن طريق محرك زند، وفي الإصدار الخامس تقدمت لغة بي إتش بي بتقنيات عالية جدا وكان آخر إصدار من النسخة الخامسة هو 5.5.9.
علاوةً على ذلك، غالبا ما تعمل لغة بي إتش بي على خادم ويب، كما يمكن استخدامها كواجهة سطر أوامر أو استخدامها لتطوير برامج ذات واجهة رسومية تعمل على حاسوب المستعمل، يمكن استخدام بي إتش بي تحت أغلب خوادم الويب كما أنها تعمل على أغلب نظم التشغيل، كما أن فريق تطويرها يزود شيفرتها المصدرية كاملة حيث يمكن للمستعملين بناءها وتطويرها بما يناسب احتياجاتهم.
من جانب آخر، تقوم بي إتش بي أساسا بأخذ الملف الذي يحتوي على أوامر البي إتش بي (ملفات.php) كمدخل وتقوم بإخراج بيانات قابلة للعرض.
أنواع البيانات
علاوةً على ذلك، المصفوفات تدعم الفهارس النصية والرقمية، المصفوفات يمكن أن تحتوي عناصر من أي نوع من البيانات التي تدعمها بي إتش بي.
وعلى صعيد آخر، تقوم بي إتش بي بتخزين الأرقام بمدى يعتمد على المعالج التي تعمل عليه، هذا المدى نموذجيا يكون 32 بت من الأعداد الصحيحة، متغيرات الأعداد الصحيحة يمكن أن تكون قيمتها عشرية أو ثمانية أو ست عشرية. الأعداد الحقيقية كذلك تخزن بمدى يعتمد على المعالج.
في هذا الإطار، لغة بي إتش بي تحتوي كذلك على نوع بوليان والذي يسمى بـ "booleen"، كما في لغة بيرل الأرقام الأكبر أو الأصغر من صفر يمكن أن تعتبر true أما الصفر يمكن أن تعتبر false.
من جانب آخر، نوع البيانات null يمثل المتغيرات التي لا تحتوي على القيمة، والقيمة الوحيدة في هذا النوع من البيانات هي NULL.
المكتبات
من جانب آخر، تضم بي إتش بي عدد كبير من المكتبات الحرة والمجانية، أغلب هذه المكتبات تعطي بي إتش بي طبيعتها كلغة لكتابة تطبيقات الوب، حيث تحتوي على مكتبات للوصول إلى FTP ومجموعة من مكتبات الوصول إلى قواعد البيانات مثل ماي إس كيو إل وإس كيو لايت وغيرها، الكثير من الدوال تشبه دوال لغة سي.
بي إتش بي 3
من جهة ثانية، أحد أهم الميزات التي تميزت بها بي إتش بي 3 عن سابقتها إنها أصبحت قابلة للتوسع وتوفر مع هذا الإصدار الكثير من المكتبات والدوال، وأدت قابلية التوسع إلى إقبال الكثير من المطورين على تطوير المكتبات الجديدة وإضافتها مع اللغة، ويقال أن هذا هو السبب الأساسي للنجاح الذي حققه هذا الإصدار، ومن الميزات الأخرى التي تمت إضافتها في هذا الإصدار هي البرمجة كائنية التوجه.
من جهة ثانية، تم إطلاق بي إتش بي 3.0 في يونيو 1998 بعد 9 أشهر من الاختبارات.
في هذا الإطار، وفي هذا الإصدار تم تغيير اسم اللغة ووضعها تحت اسم جديد وهو بي إتش بي (بدون FI) والذي كان يحمل اختصارا لمعنى جديد مختلف عن الإصدار السابق والمعنى هو "PHP: Hypertext Preprocessor".
من جانب آخر، في عام 1997 تم إعادة كتابة PHP/FI على يد زيف سوراسكي، أندي جتمانز بعدما وجدوا أن PHP/FI 2.0 ليست قوية بما فيه الكفاية من أجل كتابة تطبيق تجارة إلكترونية والذي كانوا يعملون عليه كمشروع تخرج لجامعتهم، كان هناك تعاون بينهم وبين مؤسس اللغة راسموس ليردورف على أن تكون PHP 3.0 هي النسخة الرسمية بعد PHP/FI.
محركات القوالب
من جانب آخر، وهي مجموعة من الدوال تستعمل بغرض فصل شيفرة HTML عن شيفرة بي إتش بي، وأحد أشهر محركات القوالب سمارتي.
الإضافات
وفي هذا الصدد، بي إتش بي تسمح للمطورين بكتابة إضافات لها باستخدام لغة سي لإضافة وظائف جديدة، هناك أكثر من نوع للإضافات بعضها يترجم مع شيفرة بي إتش بي والبعض الآخر يعمل في وقت التشغيل (أثناء تنفيذ البرنامج)، تم استخدام الإضافات لدعم مجموعة من الدوال مثل دوال التحكم في العمليات لنظم يونكس، لإضافة واجهة برمجة تطبيقات ويندوز وكورل وبعض الميزات غير المسبوقة مثل آي.آر.سي وغيرها الكثير، هناك موقع يطلق عليه اسم PECL يجمع الإضافات ضمنه.
المنقحات
من جانب آخر، تساعد المنقحات على تحليل الشيفرة من أجل ملاحظة الأخطاء، مثالا على المنقحات Advanced PHP Debugger وXdebug
استخدامها كسطر أوامر
وعلى صعيد آخر، توفر بي إتش بي كذلك واجهة سطر أوامر، لذا يمكن استخدامها لتطوير مجموعة من البرامج التي تسهل المهام الإدارية لمدراء النظم.
برامج التشفير، تحسين الأداء، التسريع
في هذا الإطار، أما بالنسبة لبرامج تحسين الأداء، فهي تقوم بتحسين جودة الشيفرة المترجمة عن طريق تقليل حجمها وعمل بعض التعديلات التي تقلل من وقت التنفيذ.
من جانب آخر، وظيفة برامج التشفير هي تشفير ملفات بي إتش بي إلى صيغة غير مفهومه بهدف إخفاء الشيفرة البرمجية لعدة أسباب، البعض يرى أنها أسباب أمنية، والبعض يرى أنها مفيدة للبرامج التجارية، يوجد نوعين لبرامج التشفير، النوع الأول يقوم بإخفاء الشيفرة المصدرية، النوع الثاني يقوم بترجمة الشيفرة إلى شيفرة أخرى، ثم يتم تركيب إضافة معينة حتى تقوم بدورها بترجمة الشيفرة الناتجة وجعلها مفهومة من ناحية المحرك الذي سوف يقوم بتنفيذها، أكثر برامج التشفير شهرة هي التي توفرها تقنيات Zend وionCube المحدودة.
ومن جهة أخرى، أخيرا بالنسبة لبرامج التسريع، فوظيفتها تحسين الأداء عن طريق عملية الكاش، حيث تقوم بتخزين الشيفرة المترجمة في الذاكرة حتى تستعملها فيما بعد بدلا من الحاجة إلى ترجمة وتحويل الشيفرة في كل مرة يطلب فيها الملف، تتوفر برامج تجارية مثل Zend Platform وأخرى حرة مثل xcache وeAccelerator وAPC
بي إتش بي 4
ومن جهة أخرى، تعتمد بي إتش بي 4.0 على هذا المحرك وتم الإعلان عن هذا الإصدار من بي إتش بي في مايو 2000، فضلًا عن تحسين الأداء في هذا الإصدار احتوى كذلك على مجموعة جديدة من الميزات مثل دعمه لعدد أكبر من خوادم الوب، الجلسات، طرق آمنة جديدة لمعالجة دخل المستعمل وغيرها.
وفي هذا الصدد، في عام 1998، وبعد الانطلاق الرسمي لبي إتش بي 3.0 بقليل بدأ زيف سوراسكي وأندي جتمانز بإعادة كتابة أساس لغة بي إتش بي وكان الهدف من ذلك هو تحسين الأداء للبرامج المعقدة والضخمة وتحسين قابلية اللغة للتوسع.
من جانب آخر، المحرك الجديد الذي ظهر بعد إعادة الكتاب تم تسميته بمحرك زند واسم «زند» مأخوذ من أوائل حروف أسماء مطوريه، ونجحوا في تحقيق اهدافهم عن طريق هذا المحرك، وتم الإعلان عنه في سنة 1999.
- وقد تم إعلان إيقاف تطوير ودعم بي إتش بي 4 في 13 يوليو، 2007.
- <?php
- $page_title = "My website";
- ?>
- <?php
- echo $page_title;
- ?>
- Hello
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟