Decíamos anteriormente que Zend Framework provee herramientas para cubrir más del 80% de las necesidades básicas de cualquier desarrollador. ¿Pero cuáles son esas herramientas?

A continuación, daré un breve resumen de algunas de ellas, que iré ampliando con el tiempo.

• Componentes MVC:

El “corazón” del Framework, y donde se ha realizado un mayor trabajo, son los componentes para soportar el patrón de diseño MVC para nuestras aplicaciones.
Está compuesto por Zend_Controller_Front, para mapear distintas peticiones web y correr distintas partes específicas de código.
Zend_View, que nos ayuda a simplificar nuestra lógica de presentación utilizando simples scripts PHP. Ya veremos más de esto en otros artículos.

• Abstracción a Base de Datos:

Tenemos una capa de acceso a bases de datos, que soporta múltiples bases de datos (DB2, MySQL, MSSQL Server, Oracle, SQLite, PostgreSQL, etc) utilizando una API unificada, gracias a Zend_Db_Adapter.
Además contamos con Zend_Db_Profiler que nos permite realizar estadísticas y medir tiempos de respuestas de algunos querys que ejecutemos.
A su vez, Zend_Db_Select, nos ofrece toda una metodología para acceder a nuestras tablas en la base de datos, de una manera muy similar a como se logra con el patrón ActiveRecord, como en Ruby u otros frameworks.

• Internacionalización (I18N):

Son herramientas muy útiles para asegurarnos que nuestra aplicación estará preparada para usuarios de todo el mundo. Zend_Locale posee encapsulados varios parámetros de configuración propios de cada lenguaje o país. Además, Zend_Translate nos ofrece distintos métodos de guardar o leer información diferenciada por idioma, y presentarla dependiendo de las opciones del usuario.
Las fechas son también muy factibles de necesitar transformaciones dependiendo del idioma, para eso contamos con Zend_Date, que nos permite trabajar con fechas en distintos formatos.
Finalmente, Zend_Measure, es una herramienta muy útil para realizar transformaciones entre distintas unidades de medida, sobre todo para países que no terminan de enterarse que el Sistema Métrico Decimal es lo que necesitan.

• Autenticación:

Cualquier aplicación que se precie de dar una mejor usabilidad a sus usuarios, necesita poder identificar a los mismo, guardando y validando información de login. Zend Framework ofrece tres componentes para realizar esto.
Zend_Auth, nos permite chequear y guardar credenciales de usuario de distintas maneras: utilizando la Base de Datos, utilizando el método Digest de Apache, o autenticación http simple.
A su vez, Zend Session trabaja como un administrador de datos de Sesión, al igual que en PHP, solo que ofrece algo de valor agregado.
Y finalmente, el componente Zend_Acl (una implementación de Access Control Lists -Listas de Control de Acceso- en PHP), que nos permite asignar con roles y permisos a usuarios o grupos de usuarios en nuestra aplicación.

• WebServices:

Hoy por hoy es una de las tendencias de la web el poder consumir WebServices de los servicios más conocidos. Y afortunadamente, Zend Framework tiene en cuenta las últimas tendencias, y nos otrece soluciones al respecto.
Tenemos clases de bajo nivel, como Zend_Http_Client o Zend_Rest_Client que nos permiten realizar peticiones a proveedores de servicios, utilizando los métodos HTTP o REST respectivamente.
Construidos sobre estos dos componentes, existen otros componentes derivados de Zend_Service, listos para ser utilizados con los servicios más conocidos: Akismet, Flickr, Amazon, Simpy, Audioscrobbler, Delicious, Yahoo!, etc.
Para trabajar con RSS, Zend_Feed nos permite consumir (con una sola línea de código) o publicar RSS Feeds para nuestra aplicación.
Y si de Webservices de Google se trata, Zend Framework nos ofrece Zend_Gdata, parte del projecto Google Data API, y cuenta con código donado por Google para acceder a sus servicios más conocidos: Blogger, Google Calendar, Google Documents, desde aplicaciones PHP que desarrollemos.

• AJAX:

Uno de los primeros componentes que ofrecía Zend Framework era Zend_JSON, incluso antes de que PHP incluyera soporte nativo para JSON (JavasScript Object Notation), un formato estándar que nos permite traspasar información hacia y desde PHP a Javascript.

• Búsquedas:

Sin pretender ser un Google-Killer, Zend Framework incluye un excelente componente llamado Zend_Search_Lucene, que es una implementación escrita en PHP de un proyecto Open Source llamado Apache Java Lucene.

• Clases Utilizarias

Contamos además, con Zend_Mail y Zend_Mime, que nos permiten enviar y leer mails directamente desde un servidor de correo, ya sea en formato texto o Mime.
O por ejemplo, tenemos Zend_Pdf, un componente que nos permite leer, editar y crear documentos PDF desde cero y con una interfaz muy sencilla.

• Y hay mucho más

Y la lista continúa y continúa con Zend_Cache, Zend_Config, Zend_Console_Getopt, Zend_Filter, Zend_Filter_Input, Zend_Loader, Zend_Log, Zend_Memory, Zend_Registry, Zend_Validate, de los cuales ya hablaremos más adelante de manera específica o a través de ejemplos.

En todo caso, para aquellos que quieran ver la lista actualizada y completa de componentes que ofrece Zend Framework, no duden visitar el Manual Oficial [EN] del proyecto.