¿Alguien ha intentado hacer que el sistema PHP funcione más orientado a objetos?

StackOverflow https://stackoverflow.com/questions/61784

  •  09-06-2019
  •  | 
  •  

Pregunta

Sólo tengo curiosidad por saber si existe algún proyecto que intente agrupar todas (o la mayoría) de las funciones integradas de PHP en una jerarquía de clases más orientada a objetos.Por ejemplo, agrupar todas las funciones de cadena en una sola clase de cadena, etc.

Me doy cuenta de que esto en realidad no resolverá ningún problema (a menos que las modificaciones se realicen en el nivel del código fuente de PHP), ya que todas las funciones integradas aún serían accesibles en el espacio de nombres global, pero ciertamente facilitaría mucho la usabilidad.

¿Fue útil?

Solución

Para responder a tu pregunta, sí, existen varias bibliotecas que hacen exactamente lo que estás hablando.En cuanto a cuál desea utilizar es una cuestión completamente diferente.PHPClasses y pear.org son buenos lugares para empezar a buscar este tipo de bibliotecas.

Actualizar:Como otros han sugerido, SPL es una buena biblioteca y incluye muchas de las funciones integradas de PHP.Sin embargo, todavía hay muchas funciones de PHP que no incluye.Dejándonos todavía sin una solución milagrosa.

Al usar marcos como Cakephp y Zend (otros también), he notado que intentan resolver algunos de estos problemas incluyendo sus propias bibliotecas y construyendo conceptos básicos como la conectividad DB en el marco.Entonces los frameworks pueden ser otra solución

Otros consejos

Demasiadas veces.Tan pronto como alguien descubre que PHP tiene características OO, quiere agrupar todo en clases.

El objetivo de las cosas OO en PHP es que puedas diseñar tus soluciones de la forma que quieras.Pero envolver las funciones existentes en Objetos no produce muchos beneficios.

Dicho esto, el núcleo de PHP ya está bastante orientado a objetos.Echa un vistazo a SPL.

Creo que algo como esto es integral para que PHP avance.Siendo principalmente un programador .Net, me resulta doloroso trabajar con PHP con su millón y una funciones globales.Es bueno que PHP 5.3 tenga espacios de nombres, pero no ayuda mucho cuando sus propias bibliotecas ni siquiera están orientadas a objetos, y mucho menos emplean espacios de nombres.No me importa mucho PHP como lenguaje, pero su API está terriblemente desorganizada y probablemente necesite una revisión completa.Algo así como lo que pasó VB cuando se convirtió en VB.Net.

No estoy de acuerdo.La programación orientada a objetos no es inherentemente mejor que la programación procedimental.Creo que no deberías usar OO a menos que necesites un comportamiento polimórfico (herencia, métodos anulados, etc.).Usar objetos como contenedores simples para código no vale la pena.Esto es particularmente Esto es cierto para las cadenas porque se usan mucho (p. ej.como claves de matriz).Por lo general, cada aplicación puede beneficiarse de algunas características polimórficas, pero generalmente a un alto nivel.¿Alguna vez querrías ampliar una clase String?

Además, es necesario un poco de historia para comprender los extraños nombres de funciones de PHP.PHP se basa en la biblioteca estándar C y el estándar POSIX y utiliza muchos de los mismos nombres de funciones (strstr, getcwd, ldap_open, etc.).En realidad, esto es algo bueno porque minimiza la cantidad de código de enlace del lenguaje, garantiza un conjunto completo y bien pensado de características (prácticamente cualquier cosa que puedas hacer en C, puedes hacerlo en PHP) y estas bibliotecas del sistema estén altamente optimizadas (p. ej.strchr suele estar incluido, lo que lo hace aproximadamente 10 veces más rápido).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top