الرئيسيةبحث

بي.إتش.بي



PHP

المطور: فريق PHP
آخر إصدار: 5.2.5 / 8 نوفمبر ، 2007
الاستعمال: لغة برمجة نصية
الترخيص: ترخيص PHP 3.01
الموقع الالكتروني: PHP.net


بي اتش بي (بالإنجليزية: PHP) هي لغة نصية (لغة سكريبت) برمجية صُممت أساساً من أجل استخدامها لتطوير وبرمجة تطبيقات الويب كما يمكن استخدامها لإنتاج برامج قائمه بذاتها و ليس لها علاقه بالويب، كلمة PHP اختصار لـ "PHP: Hypertext Preprocessor" .

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

فهرس

تاريخية

PHP/FI

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

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

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

PHP 3

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

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

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

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

PHP 4

في عام 1998، و بعد الانطلاق الرسمي لـ PHP 3.0 بقليل بدأ Zeev Suraski وAndi Gutmans بإعادة كتابة أساس لغة PHP وكان الهدف من ذلك هو تحسين الاداء للبرامج المُعقده و الضخمه و تحسين قابلية اللغه للتوسّع .

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

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

وقد تم إعلان إيقاف تطوير ودعم PHP 4 في 13 يوليو ، 2007[1] .

<html>

<head> <title>

<?php echo $page_title; ?>

</title> </head> <body> Hello </body>

</html>

الاستخدام

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

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

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

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

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

وقد ظهرت أيضاً بناءات أخرى ك WAMP مستبدلة لينكس بـ ويندوز (W)، و MAMP مستبدله لينكس بـ ماك او اس (M) .

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

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

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

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

تُوفر بي اتش بي مكتبات واجهات مستخدم رسوميه مثل GTK (عن طريق PHP-GTK) و Qt (عن طريق PHP-Qt) مما يجعل تطوير البرامج غير المتعلقه بالويب امراً مُمكناً .

التركيب النحوي

مثال لطباعة Hello World :

<?php
echo 'Hello, World!';
?>

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

<html>
 <head>
  <title>
<?php
echo $page_title;
?>
  </title>
 </head>
 <body>
  Hello
 </body>
</html>

المتغيرات تكون مسبوقة بعلامة الدولار - $ - و من غير الضروري تعريف نوع المتغير ، بعكس اسماء الدوال و الاصناف ، المتغيرات حسّاسه لحالة الحرف، و يتم استخدام علامات الاقتباس المزدوجه - " - من اجل وضع قيمه للمتغير .

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

أنواع البيانات

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

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

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

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

الكائنات

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

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

class foo extends bar
{
  function __construct()
  {
  }
  public static function mystaticfunc()
  {
  }
}

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

الموارد

المكتبات

تَضُم بي اتش بي عدد كبير من المكتبات الحرّة و المجانية، اغلب هذه المكتبات تُعطي بي اتش بي طبيعتها كلغة لكتابة تطبيقات الويب، حيث تحتوي على مكتبات للوصول إلى FTP و مجموعه من مكتبات الوصول إلى قواعد البيانات مثل MySQL و SQLite و غيرها، العديد من الدوال تُشبه دوال لغة C.

الإضافات

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

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

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

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

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

المُنقحات

تساعد المُنقحات (بالإنجليزية: Debugger) على تحليل الشيفره من اجل ملاحظة الاخطاء، مثالاً على المنقحات Advanced PHP Debugger و Xdebug.

مُحرّكات القوالب

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

PEAR

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

الدعم الفني

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

انتقادات

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

ماضي انطلاق الاصدارات الرئيسية

الاصدار تاريخ الانطلاق اهم التعديلات
PHP 1.0 8 يونيو, 1995 كان اسمها رسمياً "Personal Home Page Tools (PHP Tools)". هذا الاصدار هو أول من استخدم اسم PHP.
PHP Version 2 (PHP/FI) 16 ابريل, 1996 كان مبرمجها يعتبرها "اسرع و ابسط اداة" لإنشاء المواقع التفاعليه.
PHP 3.0 6 يونيو, 1998 التطوير انتقل من شخص واحد إلى عدّة اشخاص، Zeev Suraski و Andi Gutmans اعادوا كتابة اساس هذا الاصدار.
PHP 4.0 22 مايو, 2000 تم اضافة نظام محترف للتنفيذ اُطلق عليه اسم محرك Zend.
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 ظهور الاصدار الثاني من محرك Zend
PHP 5.1 25 نوفمبر, 2005
PHP 5.2 2 نوفمبر, 2006 تشغيل مرشّح الاضافات بشكل افتراضي.

التطوير المستقبلي

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

اقرأ ايضاً

مصادر

  1. ^ وصلة لموقع باللغة الإنجليزية[1]

مواقع ذات علاقه

برمجيات حرة ومفتوحة المصدر
عام مشروع جنو • // نظام النوفذة س
أنظمة تشغيل بي إس دي • // داروين • // جنو • // لينكس • // أوبن سولاريس • // رياكت أو إس
تطوير تجميعة مترجمات جنو • // بي إتش بي • // بايثون • // بيرل • // جافا
مديري نوافذ فلكس بوكس • // جنوم • // كدي • // إكسفس
منظمات مبادرة المصادر المفتوحة • // مؤسسة البرمجيات الحرة • // مؤسسة لينكس • // مؤسسة موزيلا
تراخيص رخصة أباتشي • // رخصة بي إس دي • // رخصة جنو العمومية • // رخصة جنو العمومية الصغرى • // رخصة موزيلا العمومية • // رخصة MIT • // رخص البرمجيات الحرة المتساهلة