لغة برمجة PHP. ما هي برمجة PHP؟ ما هو PHP وماذا يمكنك أن تفعل به؟

PHP هي لغة برمجة للأغراض العامة مضمنة بتنسيق HTML تُستخدم غالبًا في تطوير تطبيقات الويب. إنها واحدة من اللغات الرائدة بين لغات البرمجة المستخدمة لإنشاء مواقع الويب الديناميكية. في البداية، كان اسم اللغة يرمز إلى "Personal Home Page" (صفحة الويب الشخصية)، لكنه أصبح بعد ذلك اختصارًا متكررًا (اختصار يستخدم الاسم المختصر نفسه)، ويعني "PHP: Hupertext Preprocessor" (PHP، معالج النص التشعبي المسبق ).

تاريخ ظهور وتطور اللغة

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

  • في 1994 في العام الماضي، كتب المبرمج الدنماركي راسموس ليردورف مجموعة من هذه النصوص نفسها بلغة Perl/CGI والتي يمكنها معالجة القوالب بناءً على مستندات HTML. في وقت لاحق، كانت هذه البرامج النصية هي التي تم تجسيدها في مترجم لغة برمجة PHP، مما جعل من الممكن حل المشكلات المختلفة لتطبيقات الويب، والأهم من ذلك، كان من الممكن كتابة موقع ويب ديناميكي كامل عليه، ولكن كان ذلك لاحقًا . وفي البداية، قام ليردورف بإعداد بعض النصوص البسيطة لتلبية احتياجاته، مما جعل من الممكن تحديد من كان يزور صفحة الويب. ولكن مع مرور الوقت، زاد عدد مطوري الويب المهتمين باستخدام البرامج النصية من جانب الخادم لإنشاء محتوى ديناميكي. وفي الربيع 1995 في عام 2009، كشف راسموس عن الإصدار الأول من PHP، والذي كان في الأساس مجموعة من أدوات الخادم المساعدة ووحدات الماكرو. ثم في صيف العام نفسه ظهر الإصدار الثاني من PHP/FI 2.0 وتحولت مجموعة الأدوات المساعدة إلى لغة البرمجة PHP التي انتشرت على نطاق واسع. كانت المهمة الرئيسية لهذه اللغة هي تقليل كمية التعليمات البرمجية التي تم إنشاؤها المطلوبة للحصول على النتيجة، ونتيجة لذلك، أدى ذلك إلى حقيقة أن PHP أصبحت لغة موجهة نحو HTML، وبدأ كود PHP في تضمين علامات HTML.
  • ظهرت نسخة PHP 3 في 1997 العام، وذلك بفضل المبرمجين الإسرائيليين Zev Surasky و Andy Gutmans، الذين أعادوا كتابة PHP بالكامل وحلوا العديد من مشاكلها، وحددوا المظهر الحديث وأسلوب اللغة. يمكن للمطورين الآخرين إضافة هذا الإصدار بسهولة، وقد أتيحت للمبرمجين الفرصة لكتابة وحداتهم الخاصة، وتوسيع وظائف PHP. هذا جعل من الممكن العمل مع مجموعة من قواعد البيانات ودعم عدد كبير من واجهات برمجة التطبيقات المختلفة. كان لهذا الإصدار بعض النهج الموجه للكائنات، مما أثار الاهتمام وجذب مستخدمين جدد للغة.
  • في 2000 في العام الذي ظهر فيه PHP 4، بحلول هذا الوقت، تم تثبيته واستخدامه في 2.5 مليون موقع، مقارنة بـ 250 ألفًا قبل 18 شهرًا فقط. كان الغرض من إنشاء الإصدار الجديد هو تحسين نمطية التعليمات البرمجية وزيادة أداء التطبيقات المعقدة. ونتيجة لذلك، احتوى الإصدار الجديد على العديد من التغييرات الرئيسية، بما في ذلك محرك Zend الجديد (من أسماء المبدعين Ziv وEnd) وكان التحديث الأكثر ثورية في تاريخ اللغة بأكمله. تم تقديم فكرة مجردة لخادم الويب، مما يسمح لـ PHP بالعمل على Apache وMicrosoft IIS وZeus وAOLServer وغيرها. لقد تغيرت طريقة تنفيذ التعليمات البرمجية: تتم الآن قراءة التعليمات البرمجية مرة واحدة ثم يتم تحويلها إلى تنسيق داخلي، ثم يتم تنفيذها. هذا جعل من الممكن استخدام تقنيات التخزين المؤقت (مسرعات PHP)، مما أدى إلى زيادة الأداء بشكل كبير.

الإصدار الحالي من PHP 5 صدر حاليا 13 يوليو 2004. لقد أعادت تصميم جوهر اللغة وغيرت مبادئ OOP تمامًا، والتي أصبحت في كثير من النواحي مشابهة للنموذج المستخدم في Java. في الوقت الحالي، أحدث إصدار ثابت هو PHP 5.4.

PHP مفتوح المصدر ويتم توزيعه مجانًا، إذا كنت تريد إلقاء نظرة على الكود المصدري للغة - فهو متاح للعامة على GitHub.

الخصائصبي أتش بي

  • ديناميكية مشاريع الويب.إحدى الإمكانيات الأساسية لـ PHP هي القدرة على تضمين ترميز الصفحة في HTML وتعديله، مما يسمح لك "بتجميع" مواقع الويب الكاملة بناءً على صفحة واحدة.
  • الانفتاح. PHP دليل على وجود الجبن الحر. يتوفر دائمًا إصدار من المترجم الفوري على GitHub.
  • براعه. PHP هي لغة برمجة متعددة المنصات ويمكن استخدامها على أنظمة تشغيل مختلفة.
  • سهولة الاستعمال.من السهل جدًا فهم واستخدام لغة PHP، حتى بالنسبة لغير المبرمجين. وفي الوقت نفسه، تتمتع اللغة بعدد كبير من الإمكانيات ويمكن استخدامها كمحرك قالب.
  • دعم فني.يمكنك زيارة صفحة الويب الرسمية لـ PHP (http://php.net/)، والتي تقدم قائمة واسعة من المواضيع للمناقشة وتحتوي على وثائق كاملة للغة مع الأمثلة.
  • إضفاء الطابع الشخصي.يسمح انفتاح PHP للمبرمجين بتعديل بيئة البرنامج على مستوى نواة المترجم، وإضافة أو تغيير وظائفها اللازمة لحل المشكلات غير التافهة. بالإضافة إلى ذلك، توفر PHP تحكمًا كافيًا في البيئة، مما يسمح لك بتقليل احتمالية حدوث الأخطاء.
  • أمان.إذا تم تطوير برنامج PHP النصي الخاص بك بشكل صحيح، فسيكون رمز البرنامج الخاص به معروفًا لك فقط ولن تكون هناك طريقة لتعديله من الخارج.
  • الكتابة ضعيفة.من الميزات التقنية للغة أن لغة PHP لا تتطلب إعلانًا إلزاميًا عن أنواع البيانات في بداية البرنامج، مثل لغات البرمجة الأخرى.
  • الكثير من عوامل تشغيل النص.في PHP، إلى جانب القدرة على استخدام التعبيرات العادية للعمل مع السلاسل، يوجد عدد كبير من التعبيرات النصية المختلفة التي تسمح لك بالبحث عن التكرارات في النص، وقطع جزء من النص، والقيام بالعديد من العمليات الأخرى مع النص قيم.

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

بي أتش بي (المعالج المسبق للنص التشعبي) هي إحدى أدوات برمجة الويب الأكثر شيوعًا من جانب الخادم. يتلخص عمل PHP في أبسط صوره في معالجة طلب http الخاص بالعميل. تتكون معالجة الطلب بدورها من إنشاء نص تشعبي برمجيًا وفقًا لمعلمات الطلب، وبعد ذلك يتم إرجاع العلامات الناتجة إلى العميل. عندما يطلب العميل (متصفح الإنترنت) صفحة إنترنت ثابتة عادية (غالبًا بامتداد html)، يقوم الخادم بإرجاع محتويات هذه الصفحة كاستجابة دون تغييرات "كما هي". إذا تم طلب صفحة PHP، أثناء معالجة الطلب، تتم معالجة محتويات الصفحة المحددة أولاً بواسطة مترجم PHP، وعندها فقط يتم إرسال نتيجة هذه المعالجة إلى العميل.

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

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

  • معالجة واستخراج المعلمات طلبات المتشعبالحصول على ونشر؛
  • تشكيل وإرسال رؤوس http;
  • البنية التحتية للتخزين بيانات الجلسة;
  • خدمات البرمجيات للعمل مع بسكويت;

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


  • العمل مع الملفات بروتوكول نقل الملفات;
  • العمل مع قواعد البيانات باستخدام؛
  • يدعم
  • يدعم ترخيص HTTP;
  • المراسلة عبر البريد الإلكتروني وأكثر من ذلك بكثير.

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

أساسيات البرمجة PHP

إضافة كود PHP إلى العلامات ونتيجة المعالج المسبق للنص التشعبي

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

كود البرنامج ?>

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

"; ?>

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

برنامج مثال في PHP يتم إنشاء هذا الترميز برمجيًا بواسطة مترجم PHP."; $f=1; لـ ($i=1; $i<10; $i++) { if ($i>1) $f=$f*$i; صدى $i"!=",$f"
"; } ?>

ستبدو نتيجة عملها كما يلي في المتصفح:

1!=1 2!=2 3!=6 4!=24 5!=120 6!=720 7!=5040 8!=40320 9!=362880

تنظيم تطبيق من ملفات PHP متعددة

مشغل شرطي أو ثلاثي قصير

فيما يلي عرض عام لمشغل الإسناد الشرطي باستخدام المعامل الثلاثي:
نتيجة $ = الحالة؟ التعبير إذا كان صحيحا: التعبير إذا كان خطأ؛

مثال:
نتيجة $ = ($a>5)؟ $a+$b: $a-$b;

إذا كان a أكبر من 5، فسيتم تعيين القيمة a+b للمتغير الناتج، وإلا a-b.

بديل لعبارة if مع المزيد من بنيات elseif. يبدأ تنفيذ العبارات بقسم الحالة الذي تتطابق قيمته مع قيمة التعبير ويستمر خلال جميع الحالات اللاحقة حتى يتم مواجهة أمر الاستراحة - التنفيذ الكامل. القسم الافتراضي هو بديل للقسم الآخر في العبارة الشرطية.

يُحوّل ( تعبير) (قضية القيمة 1: المشغل 1; قضية القيمة 2: المشغل 2; قضية القيمة 3: المشغل 3; تقصير: يتم تنفيذ المشغل بشكل افتراضي; ) يفعل هيئة الحلقة; بينما ( حالة);

نفس المثال:

$i=2; $f=1; افعل ( $f=$f*$i; $i++; echo $i,"!=",$f,"
"؛ ) بينما ($i<10);

مزيد من التفاصيل حول افعل...أثناء الحلقةيقرأ .

التكرار عبر العناصر الموجودة في مصفوفة أو عامل التشغيل foreach

سيتم قول بضع كلمات بشكل منفصل عن المصفوفات، وفيما يلي بناء للتكرار من خلال عناصرها في الحلقة:

فوريتش ( مجموعة مصفوفةك$ عنصر) تعبير حيث نقوم بشيء ما باستخدام المتغير $element;

$values ​​​​= array("for"، "while"، "do"، "foreach"); صدى "الحلقات في PHP:"،
"؛ foreach ($القيم كمشغل $) صدى $operator، "
";

الحلقات وعامل التحديد في PHP، وكذلك في العديد من لغات البرمجة الأخرى، تدعم التعليمات استراحة– الانتهاء المبكر من الدورة و يكمل– الانتهاء المبكر من التكرار الحالي للدورة (الانتقال إلى بداية الدورة). اقرأ المزيد عنهم.

من المعروف أن PHP هي لغة برمجة ميتة وأن نظامها البيئي الذي يبلغ من العمر 22 عامًا أصبح عديم الفائدة تقريبًا عندما ظهرت Node والأطر الجديدة غير المتزامنة المبنية عليها. إن تفوق Node واضح لأن الجميع يعرفون البرامج غير المتزامنة ذات الخيوط الفردية أفضلتقصير. وأسرع.


"لكن سيمون! لماذا؟!"، ربما ستصرخ عندما ترى هذا النص على الشاشة. وإليك السبب:

فرص عمل

مطورو PHP ليسوا مطلوبين. بعد 22 عامًا، تخلت عنها جميع الشركات التي تستخدم PHP على الفور بمجرد إصدار Node v0.0.1 لأنها أصبحت على الفور أفضل حزمة تطوير. بالإضافة إلى ذلك، يعلم الجميع أنه من أجل الإطلاق الناجح (دعنا ننسى Slack)، تحتاج إلى إنشاء واجهات ويب في Node وتخزين البيانات في MongoDB.


وإلا فإنه ببساطة من المستحيل تحقيق النجاح.


وإليكم بعض الحقائق العلمية التي تثبت هذه الأقوال:

$title = 'مطورو PHP لا يمكنهم العثور على عمل لإعالة أسرهم';

النظام البيئي للغة

ربما يكون النظام البيئي هو العامل الأكثر أهمية في اتخاذ قرار بعدم استخدام لغة البرمجة. لحسن الحظ بالنسبة لنا، PHP موجودة منذ فترة طويلة، ونظامها البيئي مليء بأطر العمل الكبيرة والمدعومة جيدًا والمتكاملة والتي يكرهها الجميع - مثل Laravel، وهو نوع من مكافئ Rails، أو حلول المؤسسات مثل Symfony وZend.


على عكس PHP، لا داعي للقلق بشأن العثور على إطار عمل يكرهه مطورو Node، لأن كل شخص يكتب إطار عمل خاص به. من خلال إنشاء أطر العمل الخاصة بهم، يمكن للمطور أن يميز نفسه عن المنافسة من خلال إعادة اختراع العجلة بطريقة منطقية بالنسبة له (المطور). كما أن هذه الممارسة تضاعف من الأمان الوظيفي، وهو أمر مهم جداً، كما تظهر نتائج البحث العلمي أعلاه. كما أنه يضاعف عامل Cool Developer™ ثلاث مرات.


يمكن رؤية الأدلة المذهلة على النظام البيئي الممتاز للعقدة في الرسم البياني أدناه:



$title = 'كلما زاد عدد الأطر، كان ذلك أفضل';

تكاليف الوقت

لا يمكن قياس المستوى الحقيقي لإنتاجية المطور إلا من خلال تقييم كيفية قضاء وقته. من الواضح أن مطوري PHP يقضون وقتًا أطول في كتابة التعليمات البرمجية وبناء التطبيقات الوظيفية بدلاً من تطوير Developer Cool Factor™ وكسب النجوم على GitHub. من الواضح أن هذا سيؤثر عليهم سلبًا عند العمل في شركة ناشئة لأنهم يستخدمون وقتهم بشكل غير منتج. نعلم جميعًا أن نجوم GitHub هي طريقة كمية لتقييم مهارات المطورين.


يظهر أدناه فشل مطوري PHP في المساهمة في المجتمع:





$title = 'الاستماع إلى الشكاوى أقل إنتاجية من الشكوى. حقيقة.'؛

الأشياء التي لا يمكنك القيام بها كمطور PHP

  • البرنامج بشكل غير متزامن (حقيقي!) ؛
  • احصل على تسلسل بسيط ومفهوم من المعلمات لوظائف المكتبة القياسية؛
  • قم بإنشاء قالب تطبيق React TODO MVC الخاص بك؛
  • تنفيذ واجهة خلفية كاملة من جانب الخادم وواجهة أمامية من جانب العميل؛
  • قم بإنشاء تسربات للذاكرة الخاصة بك؛
  • اجعل المساحة ذات معنى؛
  • تحقيق فقدان البيانات بين الطلبات؛
  • حل مشكلة الجوع في العالم؛
  • البرنامج بلغة جافا سكريبت؛
  • اعترف للناس أنك مطور PHP.

PHP كأداة عمل

نعلم جميعًا أن PHP أقل جودة بالتأكيد ولا يمكن استخدامها في تطوير تطبيقات الأعمال، لذا إليك قائمة بالشركات غير الناجحة التي تستخدم PHP مقارنة بقائمة الشركات الناجحة التي تبيع منتجاتها بناءً على Node:



$title = 'العقدة أداة رائعة وفعالة للشر';

خاتمة

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

© أندريه كوخارشيك
صحيفة الكمبيوتر

مقدمة

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

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

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

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

تاريخ RNR

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

وفقًا للمؤلف، تمت كتابة سجل أسماء الركاب حرفيًا في يوم واحد بين اجتماعات العمل. في البداية كانت مجرد غلاف CGI غير موصوف مكتوب بلغة Perl، وكان يخدم حصريًا لأغراض محددة. كمرجع - CGI (واجهة البوابة العامة) - واجهة البوابة العامة، هي معيار مخصص لإنشاء تطبيقات خادم HTTP.

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

وهكذا يتلقى الزائر معلومات ديناميكية يمكن أن تتغير نتيجة لتأثير العوامل المختلفة. يمكن كتابة البوابة نفسها (برنامج CGI النصي) بلغات برمجة مختلفة - C/C++، Fortran، Perl، TCL، Unix Schell، Visual Basic، Apple Script وغيرها من اللغات المشابهة. لكن في حالة PHP، تم اختيار لغة Perl لكتابتها بنسختها الأصلية، باعتبارها الأبسط والأكثر سهولة في الوصول إليها.

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

اليوم، PHP عبارة عن مجموعة قوية من الأدوات عبر الأنظمة الأساسية الموجودة على الخادم وهي مصممة لمعالجة التعليمات البرمجية الخاصة المضمنة في صفحة HTML. بفضل هذا، يصبح من الممكن إنشاء مواقع ديناميكية بسهولة. يتم تخزين ومعالجة الملفات التي تم إنشاؤها بهذه الطريقة على الخادم، وعندما يطلب الزائر مستندًا بـ PHP، لا تتم معالجة السكربت عن طريق متصفح الزائر، مثل Java Script، ولكن عن طريق الخادم، ويتم فقط نتائج العمل يتم نقلها للزائر. يعمل برنامج CGI المكتوب بلغة C أو Perl بنفس الطريقة تمامًا. ولكن، على عكس CGI، يمكن تضمين كود PHP في أي مكان على صفحة HTML، وهي الميزة الرئيسية مقارنة بـ CGI. وإلى جانب ذلك، فإن لغة PHP نفسها سهلة التعلم ولا تتطلب أي معرفة محددة. على سبيل المثال، بالنسبة لي شخصيًا، كانت الخبرة التي اكتسبتها قبل عشر سنوات في دروس علوم الكمبيوتر في المدرسة، حيث درسنا اللغة الأساسية على دراجات ياماها العصرية والمكلفة للغاية في ذلك الوقت، كافية بالنسبة لي. على الرغم من هذه الخاصية الوردية، فإن لغة PHP لها أيضًا عيوب. تجدر الإشارة إلى التشغيل البطيء إلى حد ما (مقارنة ببرامج CGI) لبرامج PHP النصية، بالإضافة إلى صعوبة كتابة برامج كبيرة ومعقدة. بطريقة أو بأخرى، تظل PHP لغة مفسرة، مما يؤدي بالتأكيد إلى تدهور الأداء في حالة البرامج الكبيرة والمعقدة للغاية، ولكن لإجراء عمليات معالجة بسيطة على الموقع، فإن PHP هي الخيار الأفضل. فلا عجب أنه بحلول منتصف عام 2000، تم استخدام لغة PHP في أكثر من 2.5 مليون موقع!

مميزات لغة PHP

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

للبرمجة بلغة PHP، ستحتاج إلى أي محرر نصوص، ولكن من أجل الراحة، يجب أن يوفر تمييز بناء الجملة وترقيم الأسطر. أستخدم برنامج CuteHTML، المضمن مع أحدث الإصدارات من مدير FTP الجيد CuteFTP. المحرر مريح للغاية، بدون وظائف غير ضرورية، وهو مدمج في قائمة السياق، ولا يتطلب التثبيت ويحتوي على كل ما هو ضروري للبرمجة. نحتاج أيضًا إلى مجموعة أدوات للعمل مع PHP. عادة، يتم استخدام Apache+PHP، على الرغم من أن ذلك ليس مطلوبًا؛ أي خادم، مثل IIS من Microsoft، سيفي بالغرض. لكن الخيار الأول مجاني ويحظى بدعم كبير من خلال الوثائق (بما في ذلك باللغة الروسية) والمنتديات حيث يمكنك معرفة أي سؤال.

الآن لنبدأ العمل - اكتب السيناريو الأول. لكي يعرف الخادم الملف الذي يحتوي على كود PHP، يجب أن يكون امتداده (الملف) إما phtml، أو php3، أو php. بالمعنى الدقيق للكلمة، يمكن تعيين أي امتداد، لكنني أوصي باستخدام phtml دائمًا لأسباب التوافق. يبدأ كل أمر في PHP عادةً بـ "" (فيما يلي بدون علامات الاقتباس). كما تتذكر، يتم الفصل بين العديد من الأوامر بفاصلة منقوطة. يمكنك وضع تعليق في أي مكان في البرنامج النصي PHP، يبدأ بـ "/*" وينتهي بـ "*/" إذا كان التعليق صغيرًا و يستغرق سطرًا واحدًا فقط، ويمكنك وضع "//" وبالتالي التعليق بسهولة على أي سطر حتى النهاية. كالعادة، يتم تجاهل المسافات وعلامات التبويب والأسطر الجديدة ببساطة ويمكن استخدامها لتحسين إمكانية قراءة كود PHP.

العرض والمتغيرات في PHP

PHP يجعل من السهل جدًا تنظيم إخراج النص على الشاشة. دعونا نلقي نظرة على مثال البرنامج النصي:

يمكن وضع هذا البرنامج النصي في أي مكان في مستند HTML، وهو في حد ذاته لا يقدم أي شيء مفيد، لأنه يعرض فقط عبارة "Hello, World!" على الشاشة. ولكن بهذه الطريقة نتعرف على أحد أوامر PHP الأكثر شيوعًا - عرض المعلومات على شاشة المستخدم. لإعطاء البرنامج النصي بعض الوظائف المفيدة، دعونا نلقي نظرة على المتغيرات. يتميز المتغير بالاسم والنوع والقيمة. يمكن أن يكون الاسم أي شيء ويتضمن أرقامًا وحروفًا من الأبجدية الإنجليزية والأحرف المسموح بها (على سبيل المثال، شرطة سفلية أو شرطة). حسب النوع، يتم تقسيم المتغيرات إلى عدد صحيح ونقطة عائمة وحرف. يمكن أن تكون القيمة وفقًا للنوع أي شيء تقريبًا. على سبيل المثال، المتغير أ=5. يخبرنا هذا أن اسم المتغير هو a، والنوع عدد صحيح، والقيمة هي 5. فيما يلي المزيد من الأمثلة على الأسماء والقيم:

كما ترون، يجب أن تبدأ جميع المتغيرات في PHP (ولكن ليس فقط فيها) بالرمز $، مما يسمح للمترجم بتمييزها بدقة عن أوامر PHP. يعين السطر الأول من البرنامج النصي القيمة 6 للمتغير name $، ويصبح هذا المتغير عددًا صحيحًا تلقائيًا. بالمناسبة، ليس من الضروري الإعلان عن نوع المتغير مقدمًا، كما في باسكال أو فيجوال بيسك، لكن على الرغم من أن التقسيم إلى أنواع يكون مشروطًا بحتًا، إلا أن كل متغير يسعى تلقائيًا لاستخدام النوع الصحيح وفقًا للقيمة. يقوم السطر الثاني من التعليمات البرمجية بتعيين المتغير $h12 إلى 4.89، وهي قيمة النقطة العائمة. يقوم السطران الثالث والرابع من التعليمات البرمجية بتعيين قيم لمتغيراتها، وهي عبارة عن سلاسل أحرف. سيتم تفسير أي شيء محاط بعلامات اقتباس (بما في ذلك الأرقام) على أنه سلسلة أحرف. إذا لم يتم تعريف المتغيرات مسبقًا ولكن تم استخدامها، فمن المفترض أن تكون قيمتها إما صفرًا أو سلسلة فارغة اعتمادًا على النوع.

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

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

عند المقارنة مع صحيح، يتم استخدام علامتين متساويتين حتى يتمكن المترجم من التمييز بسهولة بين المقارنة والمهمة. نتيجة البرنامج النصي هي 95، لأن $a لا يساوي $b، والأمر echo $b.$a; (توجد نقطة بين المتغيرات، وليست علامة عملية حسابية) تعرض المتغيرات المحددة في صف واحد. تتم الإشارة إلى عدم المساواة (خطأ) بالرموز !=، وجميع الرموز والعوامل الحسابية والمنطقية الأخرى صالحة (على سبيل المثال، أو، و، >،<= и т.д.).

لدى PHP وسيلة لتغيير متغير بسرعة بمقدار متغير لأعلى أو لأسفل. للقيام بذلك، تحتاج إلى تحديد اسم المتغير متبوعًا بمجموعتين زائدتين أو ناقصتين على التوالي، بدون علامة المساواة، على التوالي. على سبيل المثال، $a++; - سيتم زيادة المتغير $a بمقدار واحد. يتم دعم التعيين المتزامن لقيمة واحدة لعدة متغيرات - $a = $b = 4;. كلا المتغيرين يساوي أربعة. فيما يلي بعض الأمثلة الإضافية للعمليات الحسابية غير القياسية في PHP:

مرفقات الملفات في PHP

واجه كل من قام بإنشاء صفحة واحدة على الأقل على الإنترنت مشكلة تغيير بيانات معينة عليها. بالطبع، هذا ليس بالأمر الصعب عندما تكون هناك عدة صفحات أو صفحة واحدة فقط :-)، ولكن إذا قمت بإنشاء موقع كبير، فإن إضافة صغيرة (على سبيل المثال، إلى القائمة) مع مئات الملفات يمكن أن تتحول إلى كابوس حقيقي! تعمل لغة PHP على حل هذه المشكلة دفعة واحدة، مما يسمح لك بدمج صفحة داخل صفحة أخرى. ويتم تحقيق ذلك باستخدام عوامل التشغيل REQUIRE وINCLUDE. يجب أن يتبع هذه البيانات المسار إلى الملف المرفق بين قوسين. على سبيل المثال، INCLUDE("text.phtml"). الفرق بين هذه العوامل هو أن REQUIRE يستبدل محتويات الملف المحدد ويمكن استخدامه مرة واحدة فقط، بينما يقوم INCLUDE بإدراج محتويات الملف المحدد وتنفيذها، مما يسمح باستخدامه عدة مرات، على سبيل المثال في حلقة. على أي حال، عند تنفيذ ملف، يكون مترجم PHP (يسمى بشكل صحيح المحلل اللغوي) في حالة HTML، ولإدراجه، يجب أن يتم تضمين الكود في بنية. لا يمكن أن تحدث مرفقات الملفات إلا في مساحة الخادم التي يمكن الوصول إليها بواسطة PHP. بمعنى آخر، لا يمكنك استخدام http:// في اسم الملف.

في كثير من الأحيان هناك مواقع تتضمن روابطها أحرفًا خاصة - &، ?، %. كل هذا قد يكون نتيجة عمل RNR. النقطة المهمة هي أنه إذا قمت بإضافة ?name=value في نهاية الرابط، فستكون هذه القيمة متاحة تحت نفس الاسم في الملف الذي يشير إليه الرابط. إذا كانت هناك حاجة إلى إضافة أسماء متعددة، فيمكن فصلها بواسطة &. يمكننا الآن إنشاء موقع ويب يمكن الوصول إليه باستخدام صفحة واحدة فقط. وستعرض هذه الصفحة جميع المعلومات الأخرى بناءً على البيانات الواردة عبر الرابط. سيكون ظهور مثل هذا الرابط كالتالي: http://name.ru/index.phtml?link=1. الوحدة الموجودة في نهاية الرابط هي المعلمة الخاصة بنا، والتي سيتم استبدالها في ملف Index.phtml. على سبيل المثال، مثل هذا:

...بداية الملف......نهاية الملف...

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

هناك طريقة أخرى. يكمن جوهرها في حقيقة أن PHP لديه حق الوصول إلى ما يسمى بمتغيرات بيئة الخادم. أحد هذه المتغيرات هو المسار الذي يطلبه الزائر بالنسبة لعنوان الموقع. ويصبح هذا المسار متاحًا لنا للاستخدام. في هذه الحالة، ستبدو روابطنا كما يلي: http://name.ru/index.phtml?patch/name.phtml. سيكون الجزء الثاني من الرابط - patch/name.phtml - متاحًا لنا إذا أخذنا في الاعتبار المعلمة $QUERY_STRING. على سبيل المثال، مثل هذا: $add = $QUERY_STRING. الآن دعونا نغير ملف Index.phtml الرئيسي الخاص بنا بحيث يعمل كل شيء تلقائيًا. وإذا لم يتم تحديد المعلمة المطلوبة (بشكل صحيح، ستكون مساوية لسلسلة فارغة)، من أجل فتح شيء ما، سنقوم بتعيين متغير $add اسم الملف الذي يجب فتحه كصفحة رئيسية. فليكن هذا الملف main.phtml. بعد ذلك سيبدو الكود كالتالي:

...بداية الملف......نهاية الملف...

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

مثال على عداد الزيارات في PHP

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

زوار الصفحة -

في نفس الدليل الذي توجد به صفحتك، قم بإنشاء ملف counter.dat، ثم قم بتحميله إلى الخادم، واستخدم مدير FTP الخاص بك، وقم بتغيير سمات هذا الملف بحيث يكون قابلاً للكتابة. عادةً ما تحتاج إلى التحقق من كافة سمات الملف. إذا لم تقم بذلك، فسيقوم البرنامج النصي بإلقاء خطأ باستمرار عند محاولة الكتابة إلى الملف. بالمناسبة، لمنع حدوث ذلك، عليك وضع الرمز @ أمام أمر كتابة وفتح ملف، سيؤدي ذلك إلى إلغاء عرض رسالة حول خطأ على شاشة الزائر. عندما يتم تغيير السمات، قم بتحديث صفحتك على الخادم وقم بالوصول إليها على عنوانها في المتصفح. سترى أنه حيث أدخلت كود PHP، يظهر السطر: "زوار الصفحة -" ثم رقمًا يتوافق مع عدد الزيارات. ولا أثر للكود! تمت معالجته على خادم على الإنترنت، وتم نقل نتيجة هذا التنفيذ ببساطة إلى المتصفح.

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

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

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

لغة برمجة PHP

تم اختراع لغة PHP على يد راسموس ليردورف في أواخر عام 1994. صدرت النسخة الأولى عام 1995 تحت اسم "Personal Home Page Toolkit"، ثم أعيد تصميمها وأطلق عليها اسم PHP/FI Version 2 (FI - وحدة معالجة النماذج). تمت إضافة دعم لقواعد بيانات mSQL أيضًا. منذ تلك اللحظة، بدأ المتطوعون بالمشاركة في التطوير.

إحصائيات استخدام PHP تقريبية، ولكن وفقًا لدراسة أجرتها Netcraft، في أوائل عام 2001، تم استخدام PHP في أكثر من 5,300,000 موقع حول العالم. للمقارنة: في هذا الوقت كان عدد خوادم IIS هو نفسه تقريبًا (5 ملايين). اتخذ تطوير مترجم PHP شكل عملية جماعية منظمة، حيث تم تطوير جوهر المترجم بواسطة Zend.com. ومع ذلك، يتم توزيع PHP مجانًا: يمكن تنزيل أحدث إصدار لها من PHP.net. يتم توفير وحدات PHP مع خادم Apache وفي مجموعات نظام Linux.

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

تتمتع PHP بمجموعة كاملة تقريبًا من الوظائف التي (قبل ظهور PHP) كان مبرمج الويب يحلم بها فقط. هدفه هو السماح لك بإنشاء صفحات ويب تم إنشاؤها ديناميكيًا في أسرع وقت ممكن. يمكننا أن نقول بحق أن تعلم واستخدام PHP سيكون مفيدًا لكل من المبرمجين المبتدئين والمحترفين.

مقارنة لغة برمجة PHP مع لغات برمجة تطبيقات الويب الأخرى

ولتبرير اختيار أدوات البرمجة، تمت مقارنة PHP مع لغات برمجة تطبيقات الويب الأخرى. المنافسون الرئيسيون لـ PHP هم تقنيات JSP (صفحات خادم Java وJava Scriptlets)، وASP.NET (صفحات الخادم النشطة)، وPerl، وتقنيات صفحات خادم Cold Fusion.

1. لغات البرمجة PHP و Perl

تم إنشاء لغة Perl بواسطة المبرمج Larry Wall وهي تعني الاستخراج العملي ولغة التقرير. يمكن ترجمة ذلك على أنه "لغة لاستخراج البيانات العملية وإعداد التقارير عنها". بيرل هو مترجم ويسبق ظهور الويب. مع ظهور الإنترنت، تحولت لغة Perl إلى أداة ملائمة لإنشاء صفحات ويب ديناميكية. أصبحت لغة Perl منتشرة على نطاق واسع لأنها كانت متاحة على كل خادم ويب، نظرًا لأن جميعها تقريبًا تعمل بنظام UNIX، وكان البديل الوحيد لها هو لغة C الأكثر تعقيدًا. تخسر لغة Perl أمام PHP من حيث الأناقة، على الرغم من حقيقة أن PHP تقدم وظائف مشابهة لـ Perl مع تكرار أقل بكثير وبساطة نسبية في بناء الجملة. يرجع تكرار لغة Perl إلى حقيقة أنها تم تطويرها لمجموعة متنوعة من التطبيقات، والتي لا يمكن إلا أن تؤثر على بناء الجملة، في حين تم تطوير PHP في الأصل للإنترنت. وفقًا للعديد من المستخدمين الذين لم يكونوا يعرفون PHP أو Perl في البداية، فإن تعلم PHP أسهل بكثير.

2. لغات البرمجة PHP و Java

بشكل عام، هناك فرق بين لغة جافا وتقنية جافا. لغة Java هي لغة شبيهة بلغة C تم تصميمها لتكون "C++ محسنة". تتضمن تقنية Java أجزاء العميل والخادم، بالإضافة إلى الوصول إلى قواعد البيانات، لذا فمن الأصح مقارنة تقنية Java مع مجموعة Apache/PHP/MySQL. تم تطوير تقنية Java كتقنية مشتركة بين الأنظمة الأساسية تتيح لك إنشاء تطبيقات ويب على مستوى المؤسسات. تتمثل المزايا الرئيسية لهذه التقنية في إمكانية النقل عبر الأنظمة الأساسية واللغة الموجهة للكائنات، والتي تتيح لك إنشاء تطبيقات معقدة وضخمة. تشمل العيوب التنفيذ البطيء، والاستهلاك العالي للذاكرة (تكلفة قابلية النقل عبر الأنظمة الأساسية)، وتعقيد تطوير تطبيقات الويب مقارنة بـ PHP. وفي الوقت نفسه، فإن PHP تكاد تكون جيدة مثل Java من حيث المرونة وقابلية التوسع للتطبيقات التي تم إنشاؤها. بالإضافة إلى ذلك، فإن استخدام Java لتطوير تطبيقات بسيطة إلى حد ما ليس له ما يبرره، وعند العمل على مشاكل خطيرة، تكون Java أكثر تكلفة.

3. لغات البرمجة PHP و ASP.NET

ASP (صفحات الخادم النشطة) هي لغة برمجة نصية من Microsoft. إذا كانت لغة ASP أدنى بكثير من PHP في العديد من النواحي، في المقام الأول من حيث وقت تنفيذ البرنامج النصي، فمع ظهور تقنية ASP.NET، تغير الوضع. الميزة الرئيسية لـ ASP.NET هي القدرة على استخدام القوة الكاملة لواجهة Windows لتطوير تطبيقات الويب. يتيح لك ذلك تطوير صفحات ذات واجهات معقدة دون الحاجة إلى القلق بشأن تخزين وتشفير وتمرير المتغيرات المستخدمة في الصفحات الديناميكية. تم دمج ASP.NET بإحكام في تقنية NET الجديدة من Microsoft. الميزة الرئيسية لتطوير تطبيقات الويب باستخدام ASP.NET هي القدرة على استخدام أي لغة برمجة في وقت تشغيل NET. يمكن أن يكون هذا إما نسخة معدلة من Visual Basic - Visual Basic.NET، أو لغة C# جديدة أو نسخة Java - J#. علاوة على ذلك، يمكن استخدام عدة لغات برمجة ضمن تطبيق ويب واحد. كل هذا يسمح لنا بتوحيد المبرمجين الذين يتحدثون لغات برمجة مختلفة ضمن مشروع واحد. يتم تجميع كود تطبيق الويب ASP.NET إلى لغة Microsoft المتوسطة (MSIL)، والتي تسمى أحيانًا IL. يتم تخزين كود IL المستقل عن الأجهزة مؤقتًا في خادم الويب لتحسين الأداء، على غرار Java bytecode. ولكن على عكس تقنية Java، التي توفر استقلالية النظام الأساسي، توفر NET الاستقلالية عن لغة التطوير. يعد تشغيل تطبيقات ويب ASP.NET على خوادم غير Windows أمرًا مستحيلًا تقريبًا. علاوة على ذلك، إذا كان تطبيق الويب يستخدم مكونات NET بشكل مكثف، فلن يكون عرض الصفحة الديناميكية ممكنًا إلا في نظام التشغيل Windows وباستخدام متصفح Internet Explorer فقط. لذلك، من حيث قابلية النقل، تختلف PHP بالتأكيد عن ASP.NET للأفضل. حجة أخرى مهمة للغاية لصالح PHP هي التصحيح السريع للأخطاء المكتشفة. من الناحية النظرية، يمكنك إصلاحها بنفسك إذا كان لديك المؤهلات الكافية. يمكنك أيضًا كتابة خطاب إلى المطورين، وبدرجة عالية من الاحتمال، سيتم إصلاح الخطأ في الإصدار التالي. ويتم إصدار إصدارات PHP في كثير من الأحيان. هناك ميزة أخرى لـ PHP، وهي مهمة بشكل خاص للمبتدئين، وهي أنها أسهل في الاستخدام لبناء تطبيقات الويب. وبالتالي، عند الاختيار بين ASP.NET و PHP، يجب عليك المتابعة من المهمة التي بين يديك. إذا كانت معظم الخوادم والأجهزة العميلة تعمل بنظام التشغيل Windows على شبكة الإنترانت الخاصة بشركة كبيرة، فاستخدم ASP. NET أكثر من مبرر. وفي الوقت نفسه، لتطوير موقع ويب مستضاف على الإنترنت، فمن الأفضل استخدام لغة PHP.

4. لغات البرمجة PHP و ColdFusion

تم تطوير حزمة ColdFusion بواسطة Allaire وهي مصممة للتطوير السريع لكل من مستندات الويب التفاعلية والديناميكية من خلال معالجة المعلومات التي تم الحصول عليها من قاعدة البيانات. عيب ColdFusion هو سهولة النقل المنخفضة إلى حد ما. تعمل PHP على جميع الأنظمة الأساسية تقريبًا، لكن ColdFusion يعمل على أربعة فقط: Win32، وSolaris، وHP/UX، وLinux. بالإضافة إلى ذلك، يعد ColdFusion، مثل ASP، تطورًا تجاريًا. ColdFusion نادر جدًا. مقارنة بـ PHP، فهي أكثر تطلبًا للموارد. تتمثل ميزة ColdFusion في وجود بيئة تطوير متكاملة جيدة، ونتيجة لذلك، بنيات لغة أبسط من لغة PHP وكتابة أكواد برمجية أسرع. صحيح، بسبب هذه اللغة عالية المستوى، يصعب حل بعض المشكلات فيها.

5. لغات البرمجة PHP 4.0 و PHP 5.0

تكمن الاختلافات الرئيسية في تنفيذ النموذج الموجه للكائنات. تم تشغيل PHP 4.0 على Zend Engine 1.0. مع إصدار PHP 5.0، كان Zend قد أعاد كتابة المحرك بالكامل وأصدر Zend Engine 2.0، والذي، وفقًا للمبدعين، يطبق "نموذج كائن جديد". بالمقارنة مع PHP 4.0، فإن الإصدار الخامس من اللغة يحتوي على الميزات التالية:

1. التعريف بأعضاء الفصل وأساليبه الخاصة والعامة، بالإضافة إلى الفئات والأساليب المجردة.

2. يتم تقديم الواجهات، ويمكن للفصل تنفيذ قائمة عشوائية من الواجهات.

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

4. تم التعريف بالأعضاء الدائمين وطرق الفصل.

5. من أهم الابتكارات وجود المدمرات.

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

7. قدم PHP 5.0 آلية معالجة الاستثناءات التي كانت مفقودة في PHP 4.0. وبالتالي، نتيجة لهذه الابتكارات في نموذج الكائن، أصبح PHP 5.0 لغة برمجة احترافية تماما، مما يسمح باستخدامها لحل المشكلات بأي درجة من التعقيد.