Inicio rápido a Zend_ControllerIntroducciónZend_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.
Quick Start
Si necesita información más detallada, mire las secciones
siguientes. Si solamente quiere inicializar y ejecutar una
aplicación rápidamente, siga leyendo.
Cree su estructura de archivos
El primer paso es crear su estructura de archivos. La
estructura típica es la siguiente:
Establezca su document root
Apunte su document root en su servidor web hacia el
directorio
html
de la estructura de archivos de arriba.
Cree sus reglas de reescritura
Edite el archivo
html/.htaccess
que aparece arriba de la siguiente forma:
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.
Las reglas de arriba pertenecen a Apache. Para ejemplos de reglas
de rewrite para otros servidores web, mire la
documentación de router
.
Cree su archivo bootstrap
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:
Esto instanciará y hará un dispatch del front controller, que
redigirá las peticiones a los action controllers.
Cree su action controller por defecto
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:
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
.
Cree su view script
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!
]]>Cree su controlador de errores
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
:
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.
]]>¡Vea el sitio!
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 URLs le llevará a
la página que acaba de crear:
http://example.com/http://example.com/indexhttp://example.com/index/index
Ya está listo para empezar a crear más métodos de controladores y acciones. ¡Felicidades!