resueltos programacion poo orientado orientada objetos herencia ejercicios ejemplos php oop wrapper

programacion - php poo pdf



¿Alguien ha intentado hacer que las funciones del sistema de PHP estén más orientadas a objetos? (4)

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

Me doy cuenta de que esto no solucionará 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 seguirían estando accesibles en el espacio de nombres global, pero ciertamente facilitaría la usabilidad.


No estoy de acuerdo La Programación Orientada a Objetos no es intrínsecamente mejor que la programación de procedimientos. Creo que no debes usar OO a menos que necesites un comportamiento polimórfico (herencia, métodos de anulación, etc.). Usar objetos como contenedores simples para el código no vale la pena. Esto es particularmente cierto para las cadenas porque se usan tanto (p. Ej. Como teclas de matriz). Cada aplicación generalmente puede beneficiarse de algunas características polimórficas, pero generalmente a un alto nivel. ¿Alguna vez quisieras extender una clase String?

Además, se necesita un poco de historia para entender el nombre de la función impar de PHP. PHP se basa en The Standard C Library y en el estándar POSIX y utiliza muchos de los mismos nombres de funciones (strstr, getcwd, ldap_open, etc.). Esto es realmente una buena cosa porque minimiza la cantidad de código de enlace de idioma, garantiza un conjunto completo de características bien pensadas (casi todo lo que puede hacer en C puede hacerlo en PHP) y estas bibliotecas de sistema están altamente optimizadas (por ejemplo, strchr usualmente está alineado, lo que lo hace aproximadamente 10 veces más rápido).


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

El objetivo de OO en PHP es que pueda diseñar sus soluciones de la forma que desee. Pero envolver las funciones existentes en Objetos no rinde mucho beneficio.

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


Para responder a su pregunta, sí existen varias bibliotecas que hacen exactamente lo que usted está hablando. En cuanto a cuál quieres usar es una pregunta completamente diferente. PHPClasses y pear.org son buenos lugares para comenzar a buscar tales bibliotecas.

Actualización: Como los demás han sugerido SPL es una buena biblioteca y envuelve muchas de las funciones de php integradas. Sin embargo, todavía hay muchas funciones de PHP que no se ajustan. Dejándonos quietos sin una bala de plata.

Al utilizar frameworks 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 conectividad DB en el trabajo de marco. Entonces, los marcos pueden ser otra solución


Creo que algo como esto es intergral para que PHP avance. Siendo principalmente un programador de .Net, me resulta doloroso trabajar con PHP con 1 millón y 1 funciones globales. Es agradable 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 el PHP como lenguaje, pero su API está terriblemente desorganizada y probablemente necesite una revisión completa. Algo así como lo que VB pasó cuando se convirtió en VB.Net.