بي إتش بي

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث
PHP
PHP-logo.svg


التصنيف برمجة كائنية التوجه، البرمجة الأمرية
ظهرت في 1995
صممها راسموس ليردورف
نظام التشغيل متعددة المنصات
الرخصة رخصة بي إتش بي
التطوير
المطور فريق PHP
آخر إصدار 5.6.11[1]
رقم اخر اصدار 5.6.21 () (نسخة مستقرة)[2]
7.0.9 () (نسخة مستقرة)[3] تعديل قيمة خاصية إصدار (P348) في ويكي بيانات
التأثير
متأثرة بـ سي، سي++، جافا، بيرل، سي شارب، بايثون
أثرت في Php4delphi
متفرقات
امتدادات الملفات الشائع:
  • .php
  • .phtml
  • .php4
  • .php3
  • .php5
  • .phps للكود المصدري. لكن يمكن تغييره
موقع ويب http://php.net
Php syntaxes

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

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

تاريخية[عدل]

PHP/FI[عدل]

ظهرت php أولا في سنة 1995 على يد راسموس ليردورف كانت تسمى وقتها بـ 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[5].

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

false

الاستخدام[عدل]

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

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

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

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

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

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

استخدامها كسطر اوامر[عدل]

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

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

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

التركيب النحوي[عدل]

مثال لطباعة برنامج أهلا بالعالم:

<?php
echo 'أهلا بالعالم';
?>

وأيضا بهذا الشكل

<?php echo 'Wikipedia'?>

تقوم PHP بتنفيذ ما هو بين الوسمين <?php و?> فقط، واي شيء خارج هذا هذين الوسمين فيتم طباعته مباشره ولا يتم معاملته كـ شيفرة PHP، تمكن هذه الميزة من إدخال شيفرات الـ PHP داخل شيفرات HTML، مثلا:

<html>
 <head>
 <title>
<?php
$page_title = 'Wikipedia';
echo $page_title;
?>
 </title>
 </head>
<nowiki> <body></nowiki>
 Hello
<nowiki> </body></nowiki>

</html>

المتغيرات تكون مسبوقة بعلامة الدولار - $ - ومن غير الضروري تعريف نوع المتغير، بعكس أسماء الدوال والاصناف، المتغيرات حساسه لحالة الحرف، ومن أجل وضع قيمه للمتغير يتم استخدام علامات الاقتباس المزدوجة - " - او المفردة - ' - أو بدون أي علامة اقتباس بحيث تكون القيمة في هذه الحالة على أحدى الأشكال التالية:

بي إتش بي لديها ثلاثة أنواع من التعليقات، /* */ والذي يستخدم للتعليقات متعددة الاسطر، // و# والذين يستخدمون للتعليقات ذات السطر الواحد.

أنواع البيانات[عدل]

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

لغة بي إتش بي تحتوي كذلك على نوع بوليان والذي يسمى بـ "boolean"، كما في لغة بيرل الأرقام الأكبر أو الأصغر من صفر يمكن ان تعتبر true اما الصفر يمكن ان تعتبر false.

نوع البيانات null يمثل المتغيرات التي لا تحتوي على القيمة، والقيمة الوحيدة في هذا النوع من البيانات هي NULL.

المصفوفات تدعم الفهارس النصية والرقميه، المصفوفات يمكن ان تحتوي عناصر من اي نوع من البيانات التي تدعمها بي إتش بي.

الكائنات[عدل]

في PHP 3 تم إضافة أساسيات البرمجه غرضية التوجه، وتم إعادة كتابته في PHP 5 من أجل تحسين الأداء وإضافة المزيد من الميزات، في الإصدارات السابقة من بي إتش بي كانت تعامل الكائنات كـ أنواع بدائيه (بالإنجليزية: Primitive Types). وكانت نقطة ضعف هذا الأسلوب في أن الكائن كان ينسخ كاملا عندما يتم تكليفه كـ متغير أو عندما يتم تمريره إلى الدوال، وقد تم حل هذه المشكلة PHP 5.

في PHP 5 تم الإعلان عن الأنواع private وprotected لكل من الدوال والمتغيرات، وتم الإعلان عن الطريقة القياسية في تعريف المشيد (بالإنجليزية: constructors) والمهدم (بالإنجليزية: destructors).

class foo extendكيفية تعريف الصنف foo الذي يرث الصنف bar، وتعريف الدالة العامة mystaticfunc والتي يمكن استدعاءها بالشكل التالي foo::mystaticfunc();

الموارد[عدل]

المكتبات[عدل]

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

الإضافات[عدل]

بي إتش بي تسمح للمطورين بكتابة إضافات لها باستخدام لغة سي لإضافة وظائف جديده، هناك أكثر من نوع للاضافات بعضها يترجم مع شيفرة بي إتش بي والبعض الآخر يعمل في وقت التشغيل (أثناء تنفيذ البرنامج)، تم استخدام الاضافات لدعم مجموعه من الدوال مثل دوال التحكم في العمليات لنظم يونكس، لإضافة Windows API وكورل وبعض الميزات غير المسبوقة مثل آي.آر.سي وغيرها الكثير، هناك موقع يطلق عليه اسم PECL يجمع الاضافات ضمنه.

برامج التشفير، تحسين الاداء، التسريع[عدل]

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

اما بالنسبة لبرامج تحسين الأداء، فهي تقوم بتحسين جودة الشيفرة المترجمة عن طريق تقليل حجمها وعمل بعض التعديلات التي تقلل من وقت التنفيذ.

أخيرا بالنسبة لبرامج التسريع، فوظيفتها تحسين الأداء عن طريق عملية الكاش، حيث تقوم بتخزين الشيفرة المترجمة في الذاكرة حتى تستخدمها فيما بعد بدلا من الحاجة إلى ترجمة وتحويل الشيفرة في كل مره يطلب فيها الملف، تتوفر برامج تجاريه مثل Zend Platform وأخرى حره مثل xcache وeAccelerator وAPC

المنقحات[عدل]

تساعد المنقحات على تحليل الشيفرة من أجل ملاحظة الأخطاء، مثالا على المنقحات Advanced PHP Debugger وXdebug

محركات القوالب[عدل]

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

PEAR[عدل]

وهو مشروع يهدف لكتابة مكتبات باستخدام بي إتش بي، تكون قابله لإعادة الاستخدام، تكتب مكتبات هذا المشروع دائما باستخدام البرمجه كائنية التوجه.

الدعم الفني[عدل]

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

انتقادات[عدل]

تنتقد بي إتش بي لمجموعه من النقاط منها:

  • بي إتش بي تستخدم ميزة علامات الاقتباس السحريه (بالإنجليزية: Magic quotes) والتي تحاول تجاهل العلامتين ' و" في النصوص التي تستخدم في قواعد البيانات من أجل منع ثغرات حقن SQL. هذا يؤدي إلى بعض التشويش حيث لا يتم التفريق بين البيانات التي تعالجها هذه الميزة من غيرها التي لا تعالجها.
  • بي إتش بي لا تحتوي على دعم حقيقي لـ يونيكود.

ماضي انطلاق الإصدارات الرئيسية[عدل]

الإصدار تاريخ الانطلاق أهم التعديلات
PHP 1.0 8 يونيو، 1995 كان اسمها رسميا "Personal Home Page Tools (PHP Tools)". هذا الإصدار هو أول من استخدم اسم PHP.
PHP Version 2 (PHP/FI) 16 أبريل، 1996 كان مبرمجها يعتبرها "اسرع وابسط اداة" لإنشاء المواقع التفاعليه.
PHP 3.0 6 يونيو، 1998 التطوير انتقل من شخص واحد إلى عدة أشخاص، زيف سوراسكي وأندي جتمانز اعادوا كتابة أساس هذا الإصدار.
PHP 4.0 22 مايو، 2000 تم إضافة نظام محترف للتنفيذ اطلق عليه اسم محرك زند.
PHP 4.1 10 ديسمبر، 2001 ظهور المصفوفات ($_GET، $_SESSION إلخ).
PHP 4.2 22 أبريل، 2002 إغلاق register_globals افتراضيا.
PHP 4.3 27 ديسمبر، 2002 ظهور واجهة سطر الاوامر.
PHP 4.4 11 يوليو، 2005
PHP 5.0 13 يوليو، 2004 ظهور الإصدار الثاني من محرك زند
PHP 5.1 25 نوفمبر، 2005
PHP 5.2 2 نوفمبر، 2006 تشغيل مرشح الاضافات بشكل افتراضي.
PHP 5.3 21 يونيو، 2009 أضافة Namespace وأرجاع أخطاء Undefined للمتغيرات التي لا تحمل قيم.

التطوير المستقبلي[عدل]

الإصدار 6 من بي إتش بي تحت التطوير منذ يوليو 2007، ويهدف إلى حل بعض عيوب بي إتش بي 5.

  • دعم حقيقي لـ يونيكود.
  • ازالة خاصية علامات الاقتباس السحريه magic_quotes.
  • إزالة دوال ereg واعتماد preg بديل عنها. <هذه مكاتب تنحدر عنها عدة دوال ليست داله واحده فقط>
  • ازالة المتغيرات HTTP_*_VARS.
  • ازالة الخاصية register_globals.
  • ازالة الخاصية safe_mode.

انظر أيضا[عدل]

مراجع[عدل]

وصلات خارجية[عدل]