Zend Framework

Enfoque pragmatico Grado de desarrollo: 25% (a fecha de 22 mar 2008)  Grado de desarrollo: 00% (a fecha de Diciembre 2007)

IntroducciónEditar

Enfoque pragmático del LibroEditar

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ónEditar

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.

  1. Descagar el Zend Framewok. 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.
  2. Crear una carpeta para el proyecto en en nuestro caso c:\xampp\htdocs\miProyecto.
  3. Crear una carpeta llamada lib dentro del proyecto en nuestro caso c:\xampp\htdocs\miProyecto\lib
  4. 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
  5. 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)
  6. Copiamos las carpeta de "application" y "html" que se encuentran en c:\temporal\zft\ en nuestro proyecto es decir en c:\xampp\htdocs\miProyecto\
  7. Una vez que llegamos aquí probamos si funciona : http://localhost/miProyecto/html y se abrira la aplicación en su configuración básica
  8. 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 subversion 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 del ZF son modulos independientes podemos utilizar solo los que necesitemos. Cada uno de los capítulos siguientes documenta el uso de un componente particular.

Grupo Zend Framework HispanoEditar

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ásicosEditar

Configuración Básica para el "Hola Mundo"Editar

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 como se implementan diferentes modulos

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

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 ABMEditar

Zend Framework/Zend Db/ABM Básico

El objetivo de este ejemplo es mostrar un ABM básico

Configuración Básica para ValidacionesEditar

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 Logica de NegocioEditar

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 CaptchaEditar

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 FrameworkEditar

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

* Zend Framework/Zend Acl
* Zend Framework/Zend Config
* Zend Framework/Zend Controller
* Zend Framework/Zend Db
* Zend Framework/Zend Layout
* Zend Framework/Zend Mail
* Zend Framework/Zend Registry
* Zend Framework/Zend Log

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 AclEditar

Componente que permite la administración de privilegios e implementar un ACL (access control list)

* Incluye una implementación básica para Roles y Recursos
* Los Roles y Recursos pueden ser personalizadas a través de clases definidas por el usuario
* Soporta herencia de Roles y Recursos
* Soporta el control de acceso condicional basado en una interfaz de declaraciones

A continuación tenemos una lista de los ejemplos:

Zend Framework/Zend AuthEditar

Componente que provee de una API para autentificación e incluye Adapters de autentificación para los escenarios mas comunes, soporta adaptadores como OpenID y Microsoft InfoCard

* Provee un Adpater de interfaz para personalizar los mecanismos de autentificación
* Provee almacenamiento automático de identidad para una fácil personalización
* Simple y extensible

A continuación tenemos una lista de los ejemplos:

Zend_CacheEditar

Zend Framework/Zend Cache

iteración y eliminación de subconjuntos.

* Provee multiples almacenamientos para Back-ends (Archivos, Sqlite, Memcached, etc.)
* Provee multiples Front-ends (helpers para cachear llamadas a funciones o metodos, además del cacheo total de la página.
* es simple y flexible para uso genérico

Zend Framework/Zend ConfigEditar

Componente que provee un mecanismo de configuración

* Provee una interfaz para la lectura de la información de configuración
* Soporta una amplia variedad de formatos jerárquicos de almacenamientos de datos (INI, XML, DB, etc.)
* Soporta la herencia en la configuración entre secciones

A continuación tenemos una lista de los ejemplos:

Zend_Console_GetoptEditar

Zend Framework/Zend Getopt

Zend Framework/Zend ControllerEditar

Componentes que proveen la infraestructura para implementar el Modelo-Vista-Controlador (MVC).

* Provee una implementación del patrón MVC
* Provee un sistema de plantillas basado en PHP
* Provee soporte para modulos
* Requiere una configuración mínima

A continuación tenemos una lista de los ejemplos:

Zend_CurrencyEditar

Zend Framework/Zend Currency

Zend_DateEditar

Zend Framework/Zend Date

Componente que proveen una API simple para la manipulación de horas y fechas

* Soporta I18N y L10N
* Soporta ISO y GNU/PHP standars
* Provee soporte para fechas mayores de 64bit

Zend Framework/Zend DbEditar

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.

* Provee una interfaz para múltiples base de datos
* Provee una interfaz basada en PDO, pero permite otros DAO
* Provee un profiler para consultas
* Provee soporte para inclusión de parámetros y comillas en SQL

Además provee un componente que permite la implementación de un mapeo entre tablas y objetos para base de datos.

* Implementa el patrón TDG y RDG.
* provee un mecanismo de autodescripcion de tablas
* provee una solución para consulta a tablas relacionadas

A continuación tenemos una lista de los ejemplos:

Zend_Db_SelectEditar

Zend Framework/Zend Db Select

Zend_DebugEditar

Zend Framework/Zend Debug

Zend_ExceptionEditar

Zend Framework/Zend Exception

Zend_FeedEditar

Zend Framework/Zend Feed

Componente que provee un manera sencilla de publicar feeds.

* consume RSS y Atom feeds.
* provee utilidades para descubrir enlaces de feed
* importa feeds desde multiples orígenes
* provee un mecanismo para construir y desplegar feeds

Zend_FilterEditar

Zend Framework/Zend Filter

Zend_GdataEditar

Zend Framework/Zend Gdata

Zend_HttpEditar

Zend Framework/Zend Http

Componete que provee una interfaz para el protocolo HTTP, sin dependencia de extensiones de PHP.

* Soporta validación de URL
* Soporta cookies
* Soporta servidores proxy

Zend Framework/Zend LayoutEditar

Componente que provee un mecanismo para el manejo de layouts.

* Provee una separación del contenido
* Permite una configuración de los diferentes layouts a utilizar

A continuación tenemos una lista de los ejemplos:

Zend_JsonEditar

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.

* Usa la extensión de PHP cuando esta disponible
* Soporta decodificación de objetos javascript a estructuras nativas de PHP
* Soporta codificación de estructuras PHP a JSON formato.
* Soporta la traducción de XML to JSON.

Zend_LoaderEditar

Zend Framework/Zend Loader

Zend_LocaleEditar

Zend Framework/Zend Locale

Zend Framework/Zend LogEditar

Componente que provee un mecanismo para loguear mensaje hacia la salida estándar, archivos, o base de datos.

* Provee una interfaz simple basada en log4j
* Permite la extensión de canales de salida
* Permite formatear la salida

A continuación tenemos una lista de los ejemplos:

Zend_MeasureEditar

Zend Framework/Zend Measure

Zend_MemoryEditar

Zend Framework/Zend Memory

Zend_MimeEditar

Zend Framework/Zend Mime

Zend_OpenIdEditar

Zend Framework/Zend OpenId

Zend_PdfEditar

Zend Framework/Zend Pdf

Zend Framework/Zend RegistryEditar

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_RestEditar

Zend Framework/Zend Rest

Zend_Search_LuceneEditar

Zend Framework/Zend Lucene

Zend_ServerEditar

Zend Framework/Zend Server

Zend_ServiceEditar

Zend Framework/Zend Service

Zend_SessionEditar

Zend Framework/Zend Session

Zend_TranslateEditar

Zend Framework/Zend Translate

Zend_UriEditar

Zend Framework/Zend Uri

Zend_ValidateEditar

Zend Framework/Zend Validate

Zend_VersionEditar

Zend Framework/Zend Version

Zend_ViewEditar

Zend Framework/Zend View

Zend_XmlRpcEditar

Zend Framework/Zend Rpc

ApendicesEditar

Zend Framework/Apendice

Enlaces externosEditar

Hay un par de links que podemos ir chequeando


--Mariogarcia ar 18:02 14 dic 2007 (UTC)