¡Puedes agregar "todavía" a este título! A veces, las cosas son como son simplemente porque nadie sabe cómo hacerlo mejor.
Sin embargo, eso no significa que todo sea una buena idea.
Simplemente no puedes hacer lo siguiente:
class Child extends Parent1, Parent2 {}
Sin embargo, muchos desarrolladores pensarían que existen mejores enfoques, como usar interfaces para obligar a las clases a implementar comportamientos específicos.
Tenga en cuenta que aún puede aplicar algún tipo de herencia múltiple a esas interfaces (si eso realmente tiene sentido en su caso):
interface A {} interface B {} interface C extends A, B {}
Sin embargo, para mí, ese no es el mejor argumento contra la herencia múltiple. Muchos lenguajes de programación se centran en la simplicidad y la legibilidad más que en la complejidad.
La introducción de la herencia múltiple podría dar lugar a muchos usos indebidos, sin mencionar el problema de Diamonds, que sería problemático para lenguajes de alto nivel como PHP.
Es mejor si puedes evitar complejidad innecesaria.
Muchos lenguajes de programación proporcionan herramientas integradas para ejecutar múltiples subprocesos al mismo tiempo (por ejemplo, Java, C).
Pthreads intentó introducir subprocesos múltiples en PHP, pero Joe Watkins, el creador de pthreads y paralelo, anunció en febrero de 2019 que:
pthreads ya no se mantendrá después de PHP 7.4 debido a fallas arquitectónicas.
Fuente: documentación PHP - phtreads
Si desea profundizar más, puede consultar el paralelo, que está inspirado en la concurrencia de Go.
Si bien el paralelo es genial, ¿realmente necesitas tal complejidad en tu caso?
Si necesita un mecanismo integrado para el procesamiento asincrónico, ahora es posible con Fibers (desde PHP 8.1).
Las fibras te permiten escribir funciones interrumpibles.
Si bien las fibras son geniales, ¿realmente necesitas tanta complejidad en tu caso?
Usar soluciones de terceros como ReactPHP o Swoole podría ser una mejor opción, especialmente si solo necesitas un bucle de eventos.
Mejor que eso, puedes crear un mecanismo de cola que pueda manejar mensajes y reintentar trabajos fallidos.
El cliente HTTP del componente Symfony también admite varias operaciones asincrónicas (p. ej., solicitudes/respuestas multiplexadas y transmitidas asíncronamente concurrentes).
PHP es un lenguaje interpretado, que es incompatible con operaciones intensivas y sistemas que requieren baja latencia y alta previsibilidad.
Si bien es cierto, ¿por qué usarías PHP para operaciones de alta frecuencia, streaming, juegos en línea o supervisión de alto nivel de máquinas y procesos?
PHP está pensado para la web y muchos otros usos creativos que quizás conozcas.
Espero que mantenga su simplicidad, ya que definitivamente es una característica.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3