Está en la página 1de 25

ZEND FRAMEWORK

Versin 1.10.11

Introduccin

David Salazar Instructor


david.salazar1977@gmail.com

Introduccin

Cdigo abierto orientado a objeto para aplicaciones Web con PHP 5. Es considerado una biblioteca de componentes, debido a que tiene bajo acoplamiento entre s, permitindolo utilizarlo en un alto grado de independencia. Implementa el patrn MVC (Modelo Vista Controlador). Los componentes ms utilizados son: Zend_Controller Zend_Layout Zend_Config Zend_Db Zend_Db_Table Zend_Registry

Comunidad
Los contribuyentes incluyen particulares y empresas. Estas empresas incluyen: Zend IBM OmniTI

Partners Tecnolgicos: Adobe Google IBM Microsoft Nirvanix StrikeIron

MVC
Modelo - Vista - Controlador

Modelo Vista Controlador


Se ha convertido en un estndar en el diseo de aplicaciones web modernas, que consiste en presentacin, lgica de negocio y acceso a datos. El MVC cuando ms de un desarrollador est trabajando en la misma aplicacin.

Modelo Esta es la parte de la aplicacin que define la funcionalidad bsica de un conjunto de abstracciones. Rutinas de acceso a datos y algunos lgica de negocio puede ser definido en el modelo.
Vista Es lo que visualiza el usuario (HTML). Controlador Define el patrn, manipulan el modelo, define que ve el usuario o transferir el control a otro controlador

Front Controller
Antes del MVC

Comportamiento del FrontController


El FrontController est por delante del MVC Lo que obtiene su aplicacin antes de iniciar el FrontController:
Inicializa peticin / respuesta de objetos. Puede manejar la configuracin y funcionabilidad comn:. Incluir Paths Configuraciones. Localizacin de los componente MVC (Si es necesario). Registros, DB, Autentificaciones. Convierte la URL como una respuesta con distintas partes. Establece las rutas de las solicitudes de manera apropiada a los actions y controllers.

Recibir Excepciones

Front Controller hacia el Action Controller

Enrutamiento de URLs
Enrutamiento por estandar por defecto:
http://example.com/controller/action/param1/value1...

Controller maps to class name

Action maps to method name

Param/value pairs are passed to action

http reques t Bootstrap: index.php Front Controller

Controller1 action1() action2()

Controller2 action1() action2()

Front Controller necesita de dos archivos en la carpeta public


En el directorio root (public folder):
1.

.htaccess redirige las respuestas al index.php index.php invoca al bootstrap.

2.

Front controller archivo #1: .htaccess


RewriteEngine on # Embudo de todas las peticiones a index.php # Excepto las solicitudes de los recursos estaticos RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

Front controller archivo #2: index.php


<?php // bootstrap file set_include_path('.' . PATHSEPARATOR . '../library' . PATHSEPARATOR . '../application/default/models/' . PATHSEPARATOR . get_include_path()); // Prepare the front controller $frontController = Zend_Controller_Front::getInstance(); // Dispatch the request using the front controller $frontController->dispatch();

Action Controller
MVC - Controlador

Action Controller
Maneja grupo de direcciones URL http://example.com/controller/action Default: IndexController Organiza y agrupa funcionabilidades. Se extiende una clase Zend_Controller_Action por cada controlador Se maneja mtodos actions en cada controlador http://example.com/controller/action La accin es llamada con el siguiente formato actionAction() Ejemplo: Si action es editar entonces el mtodo es editarAction().

Ms funcionabilidades del Controlador

Hay varios mtodos estandr que permiten organizar y controlar el flujo del controlador: init() Convocado por el constructor. preDispatch() Es llamado antes que cualquier mtodo action. postDispatch() Es llamado despus del mtodo action.

Mtodos tiles. forward(), redirect(), getParam(), getRequest(), getResponse(), render(). Action Helpers adiciona funcionabilidad

Ejemplo de un Controlador

Modelo
MVC

Modelo

El modelo son representaciones abstracta de la informacin.


Puede ser extendido a partir de:

Zend_Db_Table_Row - Para Abstraccin de base de datos.


Zend_Feed_Element Para abstraccin de RSS Yahoo_Result Para abstraccin de Yahoo O cualquier clase de proveedores que se adapte a las necesidades. O bien construir sus propias representaciones abstractas de los datos. postDispatch() Es llamado despus del mtodo action.

Mtodos tiles. forward(), redirect(), getParam(), getRequest(), getResponse(), render(). Action Helpers adiciona funcionabilidad

Ms del Modelo

Las clases del modelo contiene lgica de negocio que preparan los informacin para ser presentada. El modelo absorve la mayor parte de la lgica de negocio para que los controladores y las vistas esten livianos.

Modelo Vista Controlador (Tradicional)


<?php // Controllers/SearchController.php require_once 'Zend/Controller/Action.php'; class SearchController extends Zend_Controller_Action { public function indexAction() { $prodid = $this->_getParam('prodid'); // look up product data in model $products = new Search_Products(); $results = $products->find($prodid); // assign results to view $this->view->results = $results; } } <?php // views/scripts/search/index.phtml ?> Products found:<ul> <?php foreach ($this->results as $result) { echo "<li>{$this->escape($result->prodname)}</b>{$this->escape($result>available)}</li>"; }

?>
</ul>

COMPONENTE
ZF

Ejemplo de un Controlador

Reminder:

Zend/Db.php = Zend_Db
Zend/Db/Table.php = Zend_Db_Table

Componentes VS PHP

Funciones adicionales.
Zend_Session vs $_SESSION

Zend_Debug::dump() vs. vardump

Mensajes de Seguridad.
Zend_Traslate vs gettext

Zend_Locale vs setlocale

OO
Sintaxis OO

Podra extender para personalizar funcionabilidades. Los componente ZF permite reducir codificacin.

GRACIAS