los DAO y PHP

Actualmente usamos PHP para desarrollar. Las ventajas principales de PHP se puede ver facilmene: entre otras cosas, tiene bastante soporte.

PHP originalmente era el acrónimo de Personal Home Page, lo cual nos puede hablar no muy bien de este lenguaje para desarrollo de aplicaciones web o sitios de dimensiones considerables. Ahora, parece que le cambiaron el significado al acrónimo recursivo “PHP: Hypertext Preprocessor”. Cual sea el significado, ha evolucionado bastante, al grado de tener su propio ‘engine’ ( zend ) al estilo de VM, y diseñado para poder desarrollar orientado a objetos, de una manera mas avanzada ( PHP 5 ). Despues de ver varios debates sobre PHP y otros lenguajes, quedé de acuerdo con que PHP aun le falta mucho para mejorar su API, tienen muchas inconsistencias en su nomenclatura de funciones, puedes enredarte un poco al estar depurando si tienes que estar siguiendo archivos que estan incluidos como locos, o puedes volverte loco al depurar un script que tenga todo mezclado ( base de datos, logica, diseño, evaluacion de formas, etc ), aunque esto puede suceder en cualquier otro lenguaje ja!.

Lo bueno de PHP, es que como decía, con bastante soporte, ya hay funciones para todo ( casi les falta funciones como fart( ) o getCoke ( $flavor ) ), soluciones para casi toda situacion, estan las librerias PEAR, y mucho soporte de PHP en foros y su propio sitio web; aunque esto ultimo de forosy tips y ejemplitos pueden ser en algunos casos malos, por enseñar practicas no-muy-buenas. Pero bueno…

El caso es que a como está PHP en este punto, se pueden hacer DAOs, los cuales son patrones de J2EE, pero igual, se puede implementar como muchos otros patrones. El detalle es, es bueno implementarlo? Uno de los detalles que vi en los debates PHP/Java, es que PHP termina siendo mas rapido ( hasta comprobado con benchmarks ), puesto que tienes la logica de base de datos, logica de negocios e interfaces de usuarios muy unidos entre si; aunque pueden estar separados por clases, todo se incluye y queda donde mismo, se compila el script, se ejecuta y voilá; en java tenemos que si son llamadas de RMI, que se tienen que crear los objetitos, los POJOs, llamar a la otra capa, la cual tiene que regresar la info, populando arreglos de los objetitos, y despues utilizarlos en algun controlador, para despues poderlos utilizar. Ok, esta bien organizado, pero segun tiene el overhead de hacer todo esto. Volviendo al detalle de los DAO, si se implementa en PHP, podemos caer en lo mismo: tienes una clase DAO que te envuelve las llamadas a base de datos de cierto tipo de objeto, otro objeto para conexion a base de datos, el controlador del objeto, para esto tenemos los objetitos ( que en una pagina los nombraban value objects o VO, pero nosotros los bautizamos como POPOs ), y sobre esto el manejador de lo que estamos haciendo, y sobre esto el script para el cliente que a su vez manda llamar el generador de templetes ( smarty ) … aaaargh :s …. caes de nuevo en J2EE, pero mas bien seria algo como PHP5EE jaja. Entonces, resulta esto peor que manejar PHP de la manera ‘clasica’? la ventaja de hacerlo asi, es que tienes la flexibilidad de cambiarlo todo y re-juntar muchas de las cosas sin perjudicar tiempo de desarrollo ni caer en errores criticos que te consuman tiempo y que les salgan al usuario final.

Pero ese es el dilema por el momento, y en verdad no he encontrado mucha informacion acerca de si es mejor o no, algunos dicen que no es bueno hacer “java” en PHP, mientras otras partes dicen que PHP esta lo suficiente maduro para esto y mas … seria bueno saber opiniones y comentarios :)

8 Responses to “los DAO y PHP”

  1. Yo creo mi estimado colega que te estas complicando mucho, una de las cualidades de PHP es la simplicidad.

    En cuanto a lo pesado que puede llegar a ser un script de PHP es minimo a comparacion de Java y no digo que Java sea mejor que PHP o viceversa.

    Si llegaras a caer en esos problemas Smarty te puede sacar del apuro con su cache y con ayuda de APC no tienes nada de que preocuparte.

    Ademas agregale un buen disenio de la base de datos y no cargues todo al script dale chamba a la base de datos esa es su funcion y tendras un sitio muy ligero.

    Saludos!

  2. Hi Cesar, I think you should take your PHP McGiver knife tool and start forging your own framework. Cheers!

  3. yo opino lo mismo, que cortes en cuanto que php su fuerza es la simplicidad, y no por eso sacrificas aplicaciones bien desarrolladas y con buen performance :)

    y comparar php con java… no se.. no dejo de ver cualidades en los dos como para decidir entre uno u otro,.. creo que siempre tiene que ver sobre que lo vaz a desarollar y para que.

    Igual. parte que lo que llevo a php a crecer tan rapido es ir tan de la mano de mysql, y vicerversa para mysql (al menos eso leei en un articulo de oreally)

    saludos!

  4. Basicamente lo que dijo Tundra es: “Dejate de chingaderas y ponte a programar”.

    Ja buen punto!.

  5. donde venden esos cuchillos de mcgiver :P

  6. No los venden. Son open source ;)

  7. ehem… I don’t swear thankyouverymuch, Cesar and I talked about this before, so, you missed the point ;)

  8. Thanks for sharing

Discussion Area - Leave a Comment