PHP هي أداة ممتازة، يمكن أن تكون بسيطة أو معقدة. يجب أن تستخدم المشاريع المختلفة لغة PHP مختلفة.
مشروع صغير - PHP بسيط ومباشر
بشكل عام، بالنسبة لموقع ويب يحتوي على أقل من 20 صفحة وظيفية، يمكننا استخدام بنية إطارية بسيطة جدًا لكتابته. على هذا النطاق، أقترح استخدام طريقة ترميز أكثر مباشرة موجهة نحو العمليات، والسبب بسيط جدًا، وليست هناك حاجة لإنشاء عدد كبير من ملفات الفئة، ونتيجة لذلك، هناك ملف واحد جديد فقط في وحدة التحكم. وبطبيعة الحال، يتم استبعاد المشاريع ذات المتطلبات المتغيرة بشكل متكرر.
في هذا المستوى، مزايا PHP واضحة: التطور السريع، واضح في لمحة. كما أن أوجه القصور مخفية جيدًا.
مشروع متوسط الحجم - منظم بشكل جميل OO PHP
بالنسبة لمشروع متوسط الحجم، أوصي باستخدام إطار عمل مصمم جيدًا، ويمكن أن يعتمد هذا الإطار على نموذج MVC ويشتمل على العديد من العمليات الأساسية أفضل شيء هو آلية ذاكرة تخزين مؤقت شفافة، بحيث يمكن لآلية OO التي نضيفها للتكيف مع التغييرات أن تعمل بشكل أسرع وأفضل.
على هذا المستوى. بدأت عيوب PHP في الظهور، مثل دعم OO غير المكتمل (تم تحسين PHP5 بشكل كبير) والوضع أحادي الخيط فقط. بالإضافة إلى ذلك، بدأت بعض الأدوات الطرفية تفتقر إلى الدعم. على سبيل المثال، ليس لدى PHP أدوات إعادة هيكلة جيدة ولا توجد أداة جيدة لاختبار الوحدات مدمجة في IDE. المزايا هي بالطبع التطور السريع الأصلي ومجموعة واسعة من الموارد مفتوحة المصدر المتاحة.
المشاريع الكبيرة - PHP الموسعة والمحسنة
تشير المشاريع الكبيرة هنا ببساطة إلى المشاريع الموزعة، أي أن برنامجك يحتاج إلى النشر على خوادم N. في هذا المستوى، PHP تفتقر إلى الكثير من الدعم مقارنة بـ j2ee. لقد ناقشت بالتفصيل مع Shadow on 735 بعض المشكلات التي تحتاج إلى حل إذا تم تطبيق PHP في أنظمة كبيرة. بالطبع، هذه المشكلات ليست فقط مشكلات في لغة PHP، ولكنها تتضمن أيضًا مشكلات في التطوير المحيط:
1 مشاركة كود صفحة PHP، PHP بعد تحميل كود المصدر في الذاكرة مرة واحدة، يتم الاحتفاظ به فيه - يمكن القيام بذلك باستخدام مُحسِّنات APC وZend.
2. مشاركة كائنات البيانات بين صفحات PHP. يمكن مشاركة كائن البيانات، مثل المصفوفة، بين a.php وb.php. ويمكن القيام بذلك الآن باستخدام التسلسل، ولكن سيكون هناك ملف io الذاكرة أو memcached للتعامل معها.
3 تجمع اتصال قاعدة بيانات PHP، لأنه في حالة الواجهات الأمامية المتعددة، لا يمكن لـ PHP التحكم في الاتصال بقاعدة البيانات، لذلك من الضروري إنشاء تجمع اتصال أمام قاعدة البيانات، وهو شيء مشابه لـ sqlrelay. بالإضافة إلى ذلك، يعد التخزين المؤقت للبيانات مهمًا جدًا أيضًا. هناك نصيحة للتطوير عالي الضغط، وهي عدم لمس قاعدة البيانات إذا استطعت.
4 PHP نظام ذاكرة التخزين المؤقت للواجهة الأمامية. آلية تخزين مؤقت شفافة ويمكن التحكم فيها لضمان قيام صفحات الموقع بالاستعلام عن قاعدة البيانات بأقل عدد من المرات. هناك العديد من التطبيقات لهذا، لكنني لم أجد تطبيقًا جيدًا بشكل خاص.
5. بعد نجاح تطبيق PHP في حل هذه المشكلات، لن يواجه أي مشكلة في التعامل مع ضغط أكبر قليلًا.
في هذا المستوى، من المهم دمج PHP وJava وC++ وpython وما شابه ذلك لجعله نظامًا فعالاً. يمكننا استخدام memcached لإدارة الذاكرة الموزعة، وLucene لاسترجاع النص الكامل، وحاويات ejb لوضع بعض مكونات منطق الأعمال. PHP بمثابة الغراء بين الواجهة الأمامية والنظام لربطها معًا بسرعة ومرونة.