سؤال

كنت أقرأ مقالة / مقابلة (حرب اللغة:بي إتش بي مقابل.روبي (بواسطة جيفري الطريق;مارس 2011)) من قبل مطور لإنفاتو باستخدام روبي.ويقول: "بي إتش بي هو إطار ويب متنكرا في زي لغة."

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

هل كانت مفيدة؟

المحلول

رسميا:

PHP هي لغة نصية عامة للأغراض العامة المستخدمة على نطاق واسع والتي تناسب بشكل خاص لتطوير الويب ويمكن تضمينها في HTML.

وفقا ل http://us.php.net/

ولكن هذا ليس بالضرورة وصف مناسب للغاية.

php هي لغة الكمبيوتر الكاملة تورصة. ومع ذلك، فإن أي توزيع من PHP سيأتي مع عدد قوي ، بحيث يمكن تصنيف مكتبات PHP القياسية كإطار.

لذلك، عند البحث بهذه الطريقة، PHP إما:

إطار مع لغة البرمجة النصية الفريدة الخاصة بها الفريدة.

أو

لغة ملفوفة في إطار ويب ضخم، والتي لا يمكن إزالتها منها.

ومع ذلك، إذا نظرنا إلى اسم "PHP: PHP Preprocessor" (PHP)، وهذا يعني أن PHP هو "Preprocessor" (المسبق التشعبي) - لا يوجد إطار، ولا لغة، ولكن قطعة من البرامج.

عندما تنظر إليها بهذه الطريقة، PHP هو تطبيق يدير البرامج النصية باللغة الملكية، مع الوصول إلى إطار داخلي كبير مصمم لمعالجة النص التشعبي.

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

نصائح أخرى

ليس لدي مصادر - ولكن البيان يجعل بعض الشعور، حتى لو كان قد يكون مجرد محاولة لتحريك الجدل.

php هو بالتأكيد لغة، وليس إلى حد كبير ليس إطارا - ولكن إذا نظرت إلى دليل PHP مقابل، فقل المواصفات C أو C ++، وجسم الوظائف التي تقدم بها PHP عناصرسيتم النظر في ذلك في مجال الإطار: PDO و XML المناولة وما إلى ذلك - هذه الأشياء هي ما سيتم تضمينه عادة في إطار مثل QT.

الشيء مع فب هو أنها ليست مجرد لغة برمجة ، ولكن النظام البيئي بأكمله ، تتكون من:

  • لغة البرمجة بي إتش بي نفسها
  • وقت تشغيل يمكن ربطه بخادم ويب (من خلال mod_php أو سغي/فاستسغي) ، ويوفر الكثير من الطرق للتفاعل معها
  • مكتبة كبيرة من المدمج في وظائف والطبقات ، وكثير منهم على شبكة الإنترنت ذات الصلة

فب يوفر ميزات في اللغة نفسها التي هي محددة جدا لبرمجة الويب ، مثل سوبيرجلوبالز ($_SERVER, $_GET, $_POST, $_COOKIE, ، إلخ.) ، والقفز بين وضع فب ووضع هتمل باستخدام <?php ?> العلامات ، إلخ.، ويتم بناء دلالاتها حول نموذج تنفيذ عملية واحدة لكل طلب كان هو القاعدة في الأيام الأولى لبرمجة الويب من جانب الخادم.بدأت فب كأداة البرمجة على شبكة الإنترنت ، وتطورت فقط إلى (إلى حد ما) لغة البرمجة للأغراض العامة في وقت لاحق;إصدار كلي وغيرها من الميزات غير الويب ، على الرغم من أنها يمكن أن تستخدم في كثير من الأحيان على نحو فعال جدا ، هي فكرة لاحقة ، ومع ما يكفي من التعرض للغة ونظامها البيئي ، وهذا يمكن أن تصبح واضحة بشكل مؤلم في بعض الأحيان.

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

فب لديه كل هذه الأشياء في صلب ذلك بشكل افتراضي ، وهذا هو السبب في أن الناس يحبون أن أقول أن فب هو إطار ويب في حد ذاته.

من أجل " مرحبا ، العالم!"تطبيق ويب في بيثون ، وكنت عادة إعداد فيرتوالينف ، تثبيت بعض المكتبات ، وإعداد بعض النمطي لإطار الويب ، وتحديد الطرق ، وكتابة معالج الذي يولد استجابة مع" مرحبا ، العالم!"في الجسد;في فب ، انها مسألة الكتابة <?php echo "Hello, world!" في الفهرس.فب ، نسخه إلى دوكروت أباتشي ، وتمكين مود_فب.الباقي (التثبيت في الخادم ، تحليل الطلبات ، توليد الاستجابات ، إلخ.) لا يزال يحدث ، ولكن فب يعتني به بالنسبة لك.

php ليس لغة الويب.لقد بنيت في ميزات للقيام برمجة في تطبيق الويب.تطوير تطبيق ويب في PHP سهل للغاية مقارنة باللغات الأخرى مثل Java و ASP و C #.

إذا كنت ترغب في تطوير تطبيق ويب غير ضخمة واستخدام قاعدة البيانات ذات الحجم الأقل (عدد قليل من GB)، ثم يمكنك تطوير تطبيق الويب PHP.هناك العديد من شركات مضيف الويب التي توفر استضافة مواقع الويب المستندة إلى PHP شحن أسعار أقل بكثير مع جميع الميزات. القمادة موقع PHP أقل مقارنة ب Java / ASP.PHP هو تطبيق ويب خفيف الوزن.

ريان ربما تشكل رأيه بناء على منظور تاريخي. تاريخيا، كان من المفترض أن تكون PHP لغة الويب. تاريخيا تم تصميم الكثير من الميزات في اللغة لحالة الاستخدام هذه، وفي الواقع PHP تستخدم للوقوف إلى "الصفحة الرئيسية الشخصية". http://www.nusphere.com/php/php_history.htm

ولكن الآن، طورت PHP الكثير وأستطيع شخصيا أن هذا ليس صحيحا حقا.

مثالان فقط:

تم إضافة مؤشرات الترابط

اللغة فقط إلى اللغة مؤخرا. لفترة طويلة، لم يكن ذلك ممكنا. الخيوط هي شيء لا معنى له في بيئة ويب (بدلا من ذلك، تميل إلى ركلة عملية خلفية جديدة تماما أو اجتياز رسالة عبر كوني إلى عامل آخر). http://uk3.php.net/manual/en/book.pthreads.php

إدارة الذاكرة والموارد. يوفر PHP طريقة __destruct () على الكائنات، بحيث يمكنك مسح الموارد. ولكن لتبدأ، تم استدعاء هذا فقط إيقاف تشغيل البرنامج النصي. الآن في بيئة ويب، هذا منطقي أنه تريد فقط تشغيل البرنامج النصي الخاص بك لتشغيل 0.5SECS في MAX، لذلك إيقاف تشغيل البرنامج النصي بعيدا أبدا. ولكن للحصول على خلفية طويلة تشغيل أو برنامج نصي شل هذا أمر فظيع. إصدارات لاحقة من PHP ثابت هذا. http://php.net/manual/ar/language.oop5.decon.php

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى softwareengineering.stackexchange
scroll top