# Zend Framework

Enfoque pragmatico ▶

# Introducción
## Enfoque pragmático del Libro

En nuestra primera etapa del libro tomaremos un enfoque pragmático consistente en:
* Plantear el problema y escenario
* Plantear solución
* Mostrar ejemplos de la solución
** Url de ejemplo de acceso
** Path de los archivos a utilizar
** Imágenes de ser posible
** Archivos para descargar los zip de ser posible
* Bibliográfica
** URL de ser posibles

# Instalación

El ZF está construido con PHP 5 orientado a objeto
TODO: poner una descripción de los requerimientos
requiere PHP 5.1.4 o superior.
* Descargar el Zend Framework. Una buena opción para los que sean nuevos con el ZF es descargar el framework desde http://framework.zend.com/ lo bajamos en una carpeta temporal por ejemplo c:\temporal\ ,descomprimimos el zip dentro de esta carpeta.
* Crear una carpeta para el proyecto en en nuestro caso c:\xampp\htdocs\miProyecto.
* Crear una carpeta llamada lib dentro del proyecto en nuestro caso c:\xampp\htdocs\miProyecto\lib
* Copiar la carpeta Zend que se encuentra dentro de la carpeta temporal library , en nuestro caso c:\temporal\ZendFramework-1.5.1\library\Zend en la carpeta del proyecto lib, en nuestro caso c:\xampp\htdocs\miProyecto\lib aquí tenemos la librería fundamental del Zend Frameworks
* Creamos una instalación básica. Podemos encontrar una configuración básica en http://es.wikibooks.org/wiki/Zend_Framework/Configuracion_Basica allí buscamos el link para descargar zft_configuracion_basica.zip y lo guardamos en la carpeta temporal c:\temporal y lo descomprimimos ( nota este link nos llevara a un repositorio de código en google)
* Copiamos las carpeta de "application" y "html" que se encuentran en c:\temporal\zft\ en nuestro proyecto es decir en c:\xampp\htdocs\miProyecto\
* Una vez que llegamos aquí probamos si funciona : http://localhost/miProyecto/html y se abrira la aplicación en su configuración básica
* Por ultimo puedes eliminar la carpeta temporal que has creado
También puedes bajar zend con cualesquiera de los siguientes métodos:
* Download the latest nightly snapshot. Para los valientes que les gusta estar actualizado, los snapshot representan los últimos progresos del desarrollo del ZF. Tienen la documentación solamente en inglés o en todos los idiomas disponibles.
* Usando un cliente Subversion . El Zend Framework es un software de código abierto, y el repositorio usado para su desarrollo es público.
La exportación es útil si queremos conseguir una revisión particular del framework sin los directorios .svn, como las copias de trabajo creadas.
La URL para el raíz del subversión del ZF es: http://framework.zend.com/svn/framework/trunk
La aplicación necesita poder tener acceso a las clases del ZF. Aunque hay varias maneras de alcanzar esto, el include_path es el mas conveniente y debe contener la ruta de la librería ZF, en el ejemplo anterior es c:\xampp\htdocs\miProyecto\lib.
Puesto que los componentes de ZF son módulos independientes podemos utilizar solo los que necesitemos. Cada uno de los capítulos siguientes documenta el uso de un componente particular.

# Grupo Zend Framework Hispano

A todos los invito a suscribirse al grupo Zend Framework Hispano ahí colocaremos los archivos de ejemplos para que puedan ser descargados. También será un espacio para charlas y demás. Es un sitio para los hispanos que quieran aprender, compartir y disfrutar el ZendFramework (ZF). Nuestro material generado esta orientado a generar un wikibook http://es.wikibooks.org/wiki/Zend_Framework en español que permita tener una referencia tanto para los principiantes y expertos.

# Ejemplos Básicos
## Configuración Básica para el "Hola Mundo"

Zend Framework/Configuración Básica
La idea es mostrar en forma simple la estructura básica de directorios y archivos para hacer un "Hola Mundo !!!" para hacer funcionar el framework.
Zend Framework/Modulos
Mostrar en forma simple cómo se implementan diferentes módulos

## Configuración Básica para la conexión a una Base de Datos

Zend Framework/Zend Db/Configuración Básica
El objetivo principal y único de este ejemplo es lograr conectarse con el motor de la Base de Datos. Los detalles y las funciones mas avanzadas se veran mas adelante.

## Configuración Básica para ABM

Zend Framework/Zend Db/ABM Básico
El objetivo de este ejemplo es mostrar un ABM básico

## Configuración Básica para Validaciones

Zend Framework/Zend Db/ABM Básico con Validaciones
Ejemplo destinado a mostrar el funcionamiento básico de las herramientas de validación que ofrece Zend

## Configuración Básica con Lógica de Negocio

Zend Framework/Zend Db/ABM Básico con Logica de Negocio
Ejemplo destinado a mostrar el funcionamiento básico de las herramientas de validación que ofrece Zend

## Ejemplo de utilización de Captcha

Zend Framework/Zend Captcha/Ejemplo Básico
Este ejemplo está destinado a mostrar las funcionalidades que ofrece Zend Framework para la utilización de Captcha.

# Componentes del Zend Framework

La siguiente es la lista de componentes del ZF, cada una con una breve descripción y metas de cada uno.
Actualmente existen ejemplos de
Una secuencia recomendada para empezar es ver la descripción del Zend Controller (con el ejemplo de una configuración básica), y después el de Zend Db.
TODO: poner una breve descripción de los componentes

## Zend Framework/Zend Acl

Componente que permite la administración de privilegios e implementar un ACL (access control list)
A continuación tenemos una lista de los ejemplos:
* Zend Framework/Zend Acl/Configuración Básica : configuración básica para recursos y roles.

## Zend Framework/Zend Auth

Componente que provee de una API para autenticación e incluye Adapters de autentificación para los escenarios más comunes, soporta adaptadores como OpenID y Microsoft InfoCard
A continuación tenemos una lista de los ejemplos:
* Zend Framework/Zend Auth/Configuración Básica

## Zend_Cache

Zend Framework/Zend Cache
iteración y eliminación de subconjuntos.

## Zend Framework/Zend Config

Componente que provee un mecanismo de configuración
A continuación tenemos una lista de los ejemplos:
* Zend Framework/Zend Config/Configuración Básica : configuración básica con php
* Zend Framework/Zend Config/Ini : configuración a través de un archivo ini
* Zend Framework/Zend Config/Xml : configuración a través de un archivo xml

## Zend_Console_Getopt

Zend Framework/Zend Getopt

## Zend Framework/Zend Controller

Componentes que proveen la infraestructura para implementar el Modelo-Vista-Controlador (MVC).
A continuación tenemos una lista de los ejemplos:
* Zend Framework/Zend Controller/Configuración Básica : configuración básica de un controlador

## Zend_Currency

Zend Framework/Zend Currency

## Zend_Date

Zend Framework/Zend Date
Componente que proveen una API simple para la manipulación de horas y fechas

## Zend Framework/Zend Db

Componente que provee una interfaz de acceso a datos, utiliza PDO y otros DAO. Incluye adaptadores para cada base de datos, un profiler de consultas y una API para la construcción de sentencias SELECT.
Además provee un componente que permite la implementación de un mapeo entre tablas y objetos para base de datos.
A continuación tenemos una lista de los ejemplos:
* Zend Framework/Zend Db/Configuración Básica : configuración básica

## Zend_Db_Select

Zend Framework/Zend Db Select

## Zend_Debug

Zend Framework/Zend Debug

## Zend_Exception

Zend Framework/Zend Exception

## Zend_Feed

Zend Framework/Zend Feed
Componente que provee un manera sencilla de publicar feeds.

## Zend_Filter

Zend Framework/Zend Filter

## Zend_Gdata

Zend Framework/Zend Gdata

## Zend_Http

Zend Framework/Zend Http
Componente que provee una interfaz para el protocolo HTTP, sin dependencia de extensiones de PHP.

## Zend Framework/Zend Layout

Componente que provee un mecanismo para el manejo de layouts.
A continuación tenemos una lista de los ejemplos:
* Zend Framework/Zend Layout/Configuración Básica : configuración básica de un layout

## Zend_Json

Zend Framework/Zend Json
Componente que provee un mecanismo para convertir estructuras php en JSON formatos y viceversa, esto es ampliamente usado para aplicaciones AJAX.

## Zend_Loader

Zend Framework/Zend Loader

## Zend_Locale

Zend Framework/Zend Locale

## Zend Framework/Zend Log

Componente que provee un mecanismo para loguear mensaje hacia la salida estándar, archivos, o base de datos.
A continuación tenemos una lista de los ejemplos:
* Zend Framework/Zend Log/Configuración Básica : configuración básica con salida por archivo.
* Zend Framework/Zend Log/Base de Datos : salida del log hacia una base de datos.
* Zend Framework/Zend Log/Formatos : aplicamos un formato a la salida
* Zend Framework/Zend Log/Filtros : filtros aplicados a los mensajes.

## Zend_Measure

Zend Framework/Zend Measure

## Zend_Memory

Zend Framework/Zend Memory

## Zend_Mime

Zend Framework/Zend Mime

## Zend_OpenId

Zend Framework/Zend OpenId

## Zend_Pdf

Zend Framework/Zend Pdf

## Zend Framework/Zend Registry

Componente que provee un mecanismo para compartir información en todo el sistema sin necesidad de utilizar variables globales
A continuación tenemos una lista de los ejemplos:
* Zend Framework/Zend Registry/Configuración Básica : configuración básica para utilizar el registro

## Zend_Rest

Zend Framework/Zend Rest

## Zend_Search_Lucene

Zend Framework/Zend Lucene

## Zend_Server

Zend Framework/Zend Server

## Zend_Service

Zend Framework/Zend Service

## Zend_Session

Zend Framework/Zend Session

## Zend_Translate

Zend Framework/Zend Translate

## Zend_Uri

Zend Framework/Zend Uri

## Zend_Validate

Zend Framework/Zend Validate

## Zend_Version

Zend Framework/Zend Version

## Zend_View

Zend Framework/Zend View

## Zend_XmlRpc

Zend Framework/Zend Rpc

# Apendices

Zend Framework/Apéndice

# Enlaces externos

Hay un par de links que podemos ir chequeando
* http://framework.zend.com/ (Página oficial)
* http://framework.zend.com/wiki/display/ZFDEV/Tutorial
* http://www.zftutorials.com/
* http://www.zfforums.com/
* http://www.zendframeworkinaction.com/ ( Futuro libro )
* http://akrabat.com/2007/07/11/two-step-view-in-zf100/ (El autor del libro)
* http://www.alexatnet.com/node/6
* http://blog.astrumfutura.com/
* http://zfdes.com/ (documentación oficial en español)
* Autor: Mario García
* CEO at Oh!STUDIO Media Solutions
* "We provide Rich Internet Experiences"
--Mariogarcia ar 18:02 14 dic 2007 (UTC)