|
|
Zend_Controller
es el corazón del sistema de
MVC
de Zend Framework
MVC
.
MVC
son las siglas de
»
Modelo-Vista-Controlador
y es un patrón de diseño con el objetivo de separar la
lógica de la aplicación de la
lógica de visualización.
Zend_Controller_Front
implementa el patrón
»
Front Controller (Controlador Frontal)
en el cual todas las transacciones
HTTP
(requests) son
interceptadas por el controlador frontal y enviado a una
Acción particular
de un Controlador según la
URL
pedida.
El sistema
Zend_Controller
fue construido con la extensibilidad en mente, ya sea
heredando las clases existentes,
escribiendo nuevas clases
que implementan varias interfaces o clases abstractas que
forman la base de la familia de clases del controlador, o
escribiendo plugins o helpers
de las acciones para aumentar
o manipular la funcionalidad del sistema.
Si necesita información más detallada, mire las secciones siguientes. Si solamente quiere inicializar y ejecutar una aplicación rápidamente, siga leyendo.
El primer paso es crear su estructura de archivos. La estructura típica es la siguiente:
application/
controllers/
IndexController.php
models/
views/
scripts/
index/
index.phtml
helpers/
filters/
html/
.htaccess
index.php
Apunte su document root en su servidor web hacia el directorio html/ de la estructura de archivos de arriba.
Edite el archivo html/.htaccess que aparece arriba de la siguiente forma:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Nota: Learn about mod_rewrite
The above rewrite rules allow access to any file under your virtual host's document root. If there are files you do not want exposed in this way, you may want to be more restrictive in your rules. Go to the Apache website to » learn more about mod_rewrite .
If using IIS 7.0, use the following as your rewrite configuration:
La regla de arriba redirigirá las peticiones a recuros existentes (enlaces simbólicos existentes, archivos no vacíos, o directorios no vacíos) en consecuencia, y todas las otras peticiones al front controller.
Nota:
Las reglas de arriba pertenecen a Apache. Para ejemplos de reglas de rewrite para otros servidores web, mire la documentación de router .
El archivo bootstrap es la página a la que todas las peticiones son redirigidas a través de -- html/index.php en este caso. Abra el archivo html/index.php en el editor de su elección y añada lo siguiente:
Zend_Controller_Front::run('/path/to/app/controllers');
Esto instanciará y hará un dispatch del front controller, que redigirá las peticiones a los action controllers.
Antes de tratar los action controllers, debe primero entender cómo las peticiones son redirigidas en Zend Framework. Por defecto, el primero segmento de una ruta URL apunta a un controlador, y el segundo a una acción. Por ejemplo, dada la URL http://framework.zend.com/roadmap/components , la ruta es /roadmap/components , que apuntará al controlador roadmap y la acción components . Si no se suministra una acción, se asume la acción index , y si no se suministra un controlador, se asume el controlador index (siguiendo la convención de Apache de apuntar a DirectoryIndex automáticamente).
El dispatcher de
Zend_Controller
toma entonces el valor del controlador y lo apunta
a una clase. Por defecto, pone en
mayúsculas la primera letra
del nombre de controlador y agrega la palabra
Controller
. De esta forma, en nuestro ejemplo de arriba, el controlador
roadmap
es dirigido a la clase
RoadmapController
.
De la misma forma, el valor de action es dirigido a un método de la clase controladora. Por defecto, el valor se pasa a minúsculas, y la palabra Action es añadida. De esta forma, en nuestro ejemplo de arriba, la acción components se convierte en componentsAction , y el método final llamado es RoadmapController::componentsAction() .
Continuando, creemos ahora un action controller y un método de acción por defecto. Como se ha dicho antes, el controlador por defecto y la acción llamada son ambos index . Abra el archivo application/controllers/IndexController.php , e introduzca lo siguiente:
/** Zend_Controller_Action */
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
}
}
Por defecto, el action helper
ViewRenderer
está activado. Esto significa que simplemente
definiendo un action method y un view
script correspondiente,
tendrá su contenido generado inmediatamente.
Por defecto,
Zend_View
es usado como la capa Vista en el patrón
MVC
. El
ViewRenderer
hace algo de magia, y usa el nombre de controlador (e.g.,
index
) y el nombre de acción actual (e.g.,
index
) para determinar qué plantilla traer. Por defecto,
las plantillas terminan con la
extensión
.phtml
, lo que significa que en el ejemplo de arriba, la
plantilla
index/index.phtml
será generada. Adicionalmente, el
ViewRenderer
asume automáticamente que la carpeta
views
al mismo nivel que la carpeta controller será
la carpeta raíz de la vista, y que el
script de vista actual
estará en la subcarpeta
views/scripts/
.
De esta forma, la plantilla generada será encontrada en
application/views/scripts/index/index.phtml
.
Como hemos mencionado en la sección anterior , los scripts de vista se encuentran en application/views/scripts/ ; el view script para el controlador y la acción por defecto está en application/views/scripts/index/index.phtml . Cree este archivo, y escriba un poco de HTML:
Mi primera aplicación Zend Framework >¡Hola, Mundo!
Por defecto, está registrado el plugin 'error handler' . Este plugin espera que exista un controlador para manejar los errores. Por defecto, asume un ErrorController en el módulo default con un método errorAction() :
class ErrorController extends Zend_Controller_Action
{
public function errorAction()
{
}
}
Asumiendo el sistema de carpetas discutido anteriormente, este archivo irá en application/controllers/ErrorController.php . También necesitará crear un view script en application/views/scripts/error/error.phtml ; el contenido de ejemplo será parecido a:
Error Ocurrió un error
Ocurrió un error; Por favor, inténtelo de nuevo más tarde.
Con su primer controlador y vista, ya puede arrancar su navegador y acceder a su sitio. Asumiendo que example.com es su dominio, cualquiera de las siguientes URL s le llevará a la página que acaba de crear:
http://example.com/
http://example.com/index
http://example.com/index/index
Ya está listo para empezar a crear más métodos de controladores y acciones. ¡Felicidades!
|
|
Copyright © 2005-2011 Zend Technologies Inc (compiled by mikaelkael with ZFDocumentor - SVN 20189).

