"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > PHP: لا، هذا غير ممكن

PHP: لا، هذا غير ممكن

تم النشر بتاريخ 2024-07-31
تصفح:621

PHP: no, it

يمكنك إضافة "بعد" إلى هذا العنوان! في بعض الأحيان، تكون الأمور على ما هي عليه ببساطة لأنه لا أحد يعرف كيفية القيام بعمل أفضل.

ومع ذلك، هذا لا يعني أن كل شيء فكرة جيدة.

PHP لا يدعم الوراثة المتعددة

لا يمكنك ببساطة القيام بما يلي:

class Child extends Parent1, Parent2 {}

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

لاحظ أنه لا يزال بإمكانك تطبيق نوع من الميراث المتعدد على تلك الواجهات (إذا كان ذلك منطقيًا حقًا في حالتك):

interface A {}
interface B {}
interface C extends A, B {}

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

قد يؤدي تقديم الوراثة المتعددة إلى الكثير من إساءة الاستخدام، ناهيك عن مشكلة الماس، والتي قد تكون مشكلة بالنسبة للغات عالية المستوى مثل PHP.

من الأفضل أن تتمكن من تجنب التعقيد غير الضروري.

PHP لا يدعم تعدد الخيوط

توفر العديد من لغات البرمجة أدوات مدمجة لتنفيذ سلاسل رسائل متعددة في نفس الوقت (على سبيل المثال، Java، C ).

حاولت Pthreads تقديم سلاسل المحادثات المتعددة في PHP لكن جو واتكينز، مبتكر pthreads والموازية، أعلن في فبراير 2019 ما يلي:

لن يتم الاحتفاظ بسلاسل pthreads بعد PHP 7.4 بسبب العيوب المعمارية.

المصدر: وثائق PHP - phtreads

إذا كنت تريد التعمق أكثر، يمكنك التحقق من التوازي، وهو مستوحى من التزامن Go.

على الرغم من أن الموازي رائع جدًا، فهل تحتاج حقًا إلى هذا التعقيد في حالتك؟

إذا كنت بحاجة إلى آلية مدمجة للمعالجة غير المتزامنة، فقد أصبح ذلك ممكنًا الآن مع Fibers (منذ PHP 8.1).

تسمح لك الألياف بكتابة وظائف غير قابلة للمقاطعة.

على الرغم من أن الألياف رائعة جدًا، فهل تحتاج حقًا إلى هذا التعقيد في حالتك؟

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

الأفضل من ذلك، يمكنك إنشاء آلية انتظار يمكنها التعامل مع الرسائل وإعادة محاولة المهام الفاشلة.

يدعم عميل HTTP المكون من Symfony أيضًا العديد من العمليات غير المتزامنة (على سبيل المثال، الطلبات/الاستجابات المتدفقة وغير المتزامنة والمتعددة الإرسال).

PHP ليس مخصصًا للمعالجة في الوقت الفعلي

PHP هي لغة مترجمة، وهي غير متوافقة مع العمليات والأنظمة المكثفة التي تتطلب زمن وصول منخفض وإمكانية توقع عالية.

رغم أن هذا صحيح، لماذا تستخدم PHP في التداول عالي التردد أو البث المباشر أو الألعاب عبر الإنترنت أو الإشراف عالي المستوى على الآلات والعمليات؟

يتم إحتوائه

PHP مخصص للويب والعديد من الاستخدامات الإبداعية الأخرى التي قد تعرفها.

آمل أن يحافظ على بساطته، لأنه بالتأكيد ميزة.

بيان الافراج تم نشر هذه المقالة على: https://dev.to/spo0q/php-no-its-not-possible-4ji6?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3