Ahora mismo arranco los desarrollos con Zend Framework. MVC, robusto, bien pensado, bien documentado, escalable,... y muchas más cosas que a poco que hayamos oído hablar de él, ya nos suenan. La verdad es que lo estoy disfrutando. Pero antes de Zend estuve con otros frameworks, en especial, utilicé mucho PEAR. PEAR se organiza por paquetes y la mayor crítica que se le puede hacer es que no es MVC. De hecho yo diría que es un framework a la antigua, con una gran variedad de librerías para realizar casi cualquier cosa. De todas ellas la más destacable para mi, una de las que permiten desarrollar la capa de datos: DB_DataObject. Si tenéis tiempo, os aconsejo que juguéis con ella. PEAR tiene otra ventaja, para los linuxeros como yo, y es que tiene paquete en la mayoría de distros, por lo que instalar-lo en mi Ubuntu es tan fácil como apt-get install pear. Y a partir de aquí viene la gracia. Y es que PEAR a su vez tiene un gestor de paquetes que es llamado desde consola por … [Read more...] about Configurar PEAR para un dominio en Plesk
PEAR
PEAR DB_DataObject + MySQL + UTF8
El paquete PEAR::DB_DataObject es uno de mis preferidos. Siempre que puedo lo utilizo en mis proyectos y por ahora con muy buenos resultados. Básicamente me ayuda a clarificar el código ya que paso a tener objetos en vez de registros y propiedades en vez de campos. Por otro lado aprovecho su distribución en sistema de ficheros para codificar la capa de datos, cada método en la clase que hace referencia a la tabla o concepto. Por ejemplo, si tengo un método que marca al usuario como eliminado después de hacer unas comprobaciones previas sé que lo voy a poner en la clase que hace referencia a la tabla 'usuario' con lo que resulta muy cómodo a la hora de mantener el código legible y bien organizado. Además el paquete abstrae el acceso al servidor de forma que puedo cambiar mañana mi aplicación de MySQL a PostgreSQL sin tener que cambiar todas las llamadas a bases de datos. Genial, vaya!!! Pues este paquete tan genial tiene una pequeña carencia con la que me he encontrado … [Read more...] about PEAR DB_DataObject + MySQL + UTF8
phpReady un framework con PEAR y Smarty
Cuantas veces nos pasa que necesitamos crear una interfaz sencilla para manejar cuatro tablas y así hacernos una pequeña aplicación ,por ejemplo para hacer una lista de tareas relacionadas con proyectos. Pues el framework phpReady te permite hacer aplicaciones que hacen CRUD de tablas con un wizard y sin tocar nada de código. Lo veréis más claro en este video tutorial que han preparado donde en cosa de 5 minutos crean una pequeña aplicación que gestiona dos tablas que relacionan libros con autores. Sencillo y ágil. El framework hace CRUD con validación de formulario, cumple el patrón de diseño MVC, utiliza Smarty como sistema de plantillas y PEAR::MDB2 como capa de acceso de datos. Para cosas sencillas y rápidas no se puede pedir más. … [Read more...] about phpReady un framework con PEAR y Smarty
PEAR :: PHP_Beautifier
Que ocurre cuando nos vemos envueltos en un desarrollo compartido con varios desarrolladores. Normalmente cada uno tiene su estilo de codificación, y cuando hablo de estilo me refiero no solo a la forma en la que nombramos las clases o métodos sino a como escribimos el código. Si has pasado por un desarrollo compartido sabes de que hablo. Lo normal en estos casos es utilizar una guía de estilos común que nos permita armonizar el resultado y hacer así un poco más legible aquello que no hemos creado nosotros mismos. No está de más apoyarse en herramientas externas como formateadores de código o code beautifers para corregir aquellas desviaciones de la norma que hemos seguido. En el caso de PHP nos encontramos con una paquete muy útil, que aunque se encuentra en versión beta, podemos utilizar con confianza en su funcionalidad. Habló de PHP:Beautifier Lo podemos instalar utilizando el script de linea de comandos pear install Una vez instalado os ofrece una seria de clases … [Read more...] about PEAR :: PHP_Beautifier
Capturar error en la validación de HTML_QuickForm
Suelo utilizar HTML_QuickForm de PEAR para generar los formularios de mis aplicaciones web y lo suelo combinar con Smarty como sistema de plantillas. El HTML_QuickForm realiza una validación a nivel de servidor volcando mensajes predefinidos por el programador en caso de que alguno de los campos no se valide correctamente, por ejemplo se introduce una cadena de texto en un campo numérico. La librería es genial, da mucha flexibilidad y sobretodo simplifica y ordena la validación de los formularios haciendo bastante legible el código. Se me ha planteado el caso donde el formulario es tan grande que se sale de la pantalla y cuando se produce un error en la validación puede que el campo que lo ha producido se encuentre fuera del alcance de la primera página con lo cual el usuario desconoce que se ha producido el error y puede dar por buena la operación. Para estos casos se necesita poder capturar el hecho de que se halla producido un error en la validación cosa que … [Read more...] about Capturar error en la validación de HTML_QuickForm
Escribir un container para autentificación de usuarios contra un array de passwords en claro con PEAR::Auth
Normalmente utilizo PEAR::Auth para autentificar los usuarios contra una tabla de una base de datos. Los passwords en PEAR::Auth se espera que esten encriptados con MD5 siguiendo lo que es una política normal de seguridad. En uno de mis proyectos el cliente requería que las contraseñas se guardaran en plano dentro de un array en un fichero php, lo que les posibilitaba resetear el password de una forma rápida ya que el usuario final solía llamarles pidiendoles que lo hicieran ya que había olvidado la contraseña ;-) El sistema en cuestión era una intranet monousuario de una pequeña web. Para cubrir el requisito he tenido que crear un contenedor en PEAR::Auth que me permite gobernar la forma en que el usuario es validado. Os dejo el código por si a alguien le puede interesar: require_once 'Auth/Container.php'; class PlainPasswordArrayContainer extends Auth_Container { var $passwords; /** * Constructor */ function PlainPasswordArrayContainer($passwords) { // Init Here … [Read more...] about Escribir un container para autentificación de usuarios contra un array de passwords en claro con PEAR::Auth