Zend Framework o mas conocido como ZF es un Framework Open Source que sirve para desarrollar proyectos, aplicaciones y servicios web con PHP 5 y tiene buen rendimiento en aplicaciones MVC.
ZF esta desarrollado 100% Orientado a Objetos aprovechando al máximo la potencia de PHP5.

La arquitectura de este Framework se basa en componentes los cuales fueron diseñados con tanta flexibilidad que nos permite a los desarrolladores usar los componentes individualmente (use-at-will).
ZF posee muchos componentes y al descargarlos es recomendable descartar los que no vamos a usar en nuestro proyecto.
El principal patrocinador de ZF es Zend Technologies quien además difunde el estandar oficial para PHP, es como Sun para Java.
Para entender mas de la arquitectura MVC pueden leer este POST detallado. MVC en PHP.
Requerimientos
Necesita PHP 5.2.4+, puede ejecutarse en cualquier plataforma(Linux, Macintosh, Windows), pero si queremos instalar la ultima versión de Apache, PHP y MySQL podemos instalar el entorno XAMPP que es multiplataforma y muy sencilla la configuración.
Luego necesitamos editar el http.conf y activar el mod_rewrite(Mas información).
LoadModule rewrite_module modules/mod_rewrite.so
Zend Framework trabaja con conexiones PDO que son mas seguras que los drivers de MySQL, así que necesitaremos editar el PHP.ini y activar estas extensiones que sirve para la conexion a la BD.
extension=php_pdo.dll extension=php_pdo_mysql.dll
Para información detallada de requerimientos avanzados Zend Framework Appendix.
Instalación
La instalación es simple, primero elija la versión estable mas reciente de Zend Framework(en este caso es la 1.8) Zend Framework Downloads.
Luego elija el paquete preferido:
Full Pack es el paquete con los demos, test, Dojo Toolkit y mas.
Min Pack es el paquete con todo lo necesario para crear un proyecto.
Despues elijes que formato de compresion es la adecuada para usted(.zip, .rar, .tar.gz). Al momento de descargarlo y descromprimirlo encontraremos una carpeta llamada “library” la cual usaremos en nuestros Proyectos.
Nota: La carpeta /library guardara las funciones clases y demas librerías para nuestro proyecto, dentro de la carpeta Zend no se debera poner ni modificar nada ya que de ser actualizado a una nueva versión de Framework perderán su compatibilidad o eliminaran los cambios que han echo.
Estructura del Proyecto
Para comenzar con Zend Framework desarrollaremos una arquitectura simple con una carpeta “app”, “html” y “lib” las cuales explicare a continuación:
app: Esta carpeta contendrá toda la lógica de negocios del proyecto, controladores, acciones, vistas, helpers, archivos de configuración.
html: Aquí alojaremos un archivo index.php el cual interpretara las peticiones del usuario consultando los controladores y devolviendo las vistas correspondientes, de esta manera se manejara toda la web desde un solo punto.
Esta carpeta también sirve como deposito de archivos javascript, hojas de estilo, imagenes, etc que dependan de la web.
lib: Esta carpeta sirve como capa de abstracción de datos, acceso a base de datos y para alojar el Zend Framework.
Esta es una estructura básica de aplicación utilizando Zend Framework.
MyProyect/ app/ controllers/ IndexController.php views/ scripts/ index/ index.phtml html/ index.php .htaccess lib/ Zend/
Ahora comenzamos creando el archivo .htaccess, este archivo contiene una serie de directivas para el servidor. Esta vez lo usaremos para poner el mod_rewrite mediante este archivo, establecemos una regla de cuales archivos tiene que leer directamente y sino reflejarla mediante el index.php.
RewriteEngine on RewriteRule !.(js|ico|txt|gif|jpg|png|css)$ index.php
Comenzaremos explicando IndexController.php, se llama así porque debemos respetar una nomenclatura dictada por la compañía Zend y de esta forma estandarizar nuestros proyectos y archivos.
Zend Framework Coding Standard.
IndexController.php (controlador)
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
$this->view->bienvenido = 'Zend Framework MVC!';
}
}
Este sera el archivo de la vista donde pintaremos la variable bienvenido que pasa del Controller al View.
index.phtml (vista)
<body> <?php echo $this->bienvenido; ?> </body>
Para finalizar y que todo funcione correctamente hay que modificar el archivo index.php que esta en la carpeta html, ya que siempre se hara las peticiones a ese archivo el cual se encargara de elejir el controlador y la vista correspondiente.
index.php (core)
error_reporting(E_ALL); $rootPath = dirname(dirname(__FILE__)); set_include_path(get_include_path() . PATH_SEPARATOR . $rootPath . '/lib' . PATH_SEPARATOR); /** Incluimos Zend_Controller_Front */ require_once 'Zend/Controller/Front.php'; Zend_Controller_Front::run($rootPath . '/app/controllers');
Primero habilitamos los errores para el modo desarrollo, luego llamamos al metodo run que ejecutara la acción correspondiente.
Hasta aquí tenemos un concepto y un ejemplo practico de como trabaja ZendFramework, estare preparando algunos tutoriales productivos para desarrollo con este Framework.
Alguna sugerencia o duda con gusto respondere.
Les dejo un link a los Screencasts que son muy buenos para comenzar con ZendFramework.

Comentarios