Framework de Zend para el desarrollo de aplicaciones PHP
Zend acaba de publicar la primera versión de su framework de desarrollo de aplicaciones para PHP. En la actualidad hay multitud de estos frameworks, pero algo que siempre he echado en falta al programar con PHP, es un framework completo y oficial. PHP viene con multitud de funciones que habitualmente encapsulan el comportamiento de librerías externas, pero sin embargo carecía hasta ahora de un conjunto de clases que proporcionaran la infraestructura básica necesaria para construir aplicaciones, sin tener que reescribir multitud de código en cada proyecto.
Desde luego, cualquier intento serio de desarrollar aplicaciones en PHP pasaba hasta el momento por la adopción de uno de los framework existentes, o la creación de uno propio. En mi caso he probado varios de estos frameworks, pero al final por una cosa o por otra, ninguno se adaptaba a lo que necesitaba, por lo que aunque siempre quedaba la opción de modificarlos, significaba salirse de la rama oficial, con los problemas que esto conlleva.
Por lo tanto hasta el momento he preferido la utilización de un framework específico adaptado al tipo de aplicaciones que suelo realizar, aunque es previsible que la situación cambie con la llegada del framework de Zend. Por un lado, a falta de mirarlo en profundidad, parece incluir buena parte de las características que busco, una buena documentación, estar diseñado para PHP5, y buenas capacidades de ampliación. Además, la empresa que está detrás es Zend, por lo que es previsible que el recorrido del framework sea largo y no se vea truncado a las primeras de cambio.
De forma resumida, incluye entre otras las siguientes características:
- Zend_Acl: proporciona funcionalidades de listas de control de acceso y gestión de privilegios.
- Zend_Auth: proporciona una API básica de autenticaciones y algunos adaptadores habituales.
- Zend_Cache: proporciona un sistema de caché dividido en frontend y backend, de forma que se puedan almacenar en caché diferentes datos como resultados de funciones, páginas completas, etc., y que esta información se almacene en archivos, en memoria, en base de datos, etc.
- Zend_Config: simplifica la gestión de archivos de configuración.
- Zend_Controller y Zend_View: proporcionan los componentes que forma la infraestructura del patrón MVC.
- Zend_Db: proporciona una capa de acceso a base de datos, construida sobre PDO pero ampliándola con diferentes características.
- Zend_Feed: proporciona una forma sencilla de trabajar con sindicación de contenidos vía RSS.
- Zend_Filter_Input: proporciona mecanismos de filtrado y validación de entradas de datos.
Zend_Http_Client: proporciona un cliente de protocolo HTTP.- Zend_Json: permite convertir estructuras de datos PHP a JSON y viceversa, para su utilización en aplicaciones AJAX.
- Zend_Log: proporciona una forma sencilla de generar logs de aplicación, inspirada en log4j.
- Zend_Registry: proporciona un registro en el cual almacenar información de la aplicación que deba ser visible durante la ejecución de la petición de página, ofreciendo una forma más elegante y segura que la basada en variables globales.
- Zend_Rest_Client y Zend_Rest_Server: proporciona las características necesarias para proveer y consumir servicios web vía REST.
- Zend_Search_Lucene: basado en el proyecto Lucene de Apache, proporciona capacidades de búsqueda sobre documentos y contenidos.
- >end_Session: permite gestionar la información de sesión.
- Zend_XmlRpc: permite consumir y proveer servicios web.
En la siguiente imagen se puede apreciar un esquema con la arquitectura de componentes del framework.
A mi entender están cubiertas las principales tareas habituales en el desarrollo de apliaciones web, aunque quizás echo en falta un módulo específico para realizar ORM (Object Relational Model). De todas formas esto es algo más complejo, sobretodo en PHP, por lo que no lo veo como un problema, sería suficiente con adaptar el modelo que se esté utilizando al framework de Zend.
Hola amigo. Gracias por al información, pero ¿para cuando una guía de ‘por dónde empezar’ para los que no sabemos inglés (además de empezar aprendiendo inglés…)? 😉 Sería de mucha utilidad encontrar algún recurso o documentación en español ¿no sabrás de alguna? ¿no podrás dedicarnos una tarde? Saludos, y gracias.