Al terminar la configuración básica de todo el entorno de Zend Framework desde nuestro navegador podemos ejecutar http://contabilidad (según nuestro ejemplo) y visualizaremos lo siguiente:
Las siguientes URL`s daran del mismo resultado
http://contabilidad/index
http://contabilidad/index/index
http://contabilidad/default/index/index
Zend Framework puede trabajar bajo modulos y el nombre del modulo por defecto es "default". Todas las peticiones al navegador se realizaran bajo el siguiente esquema:
http://nombreProyecto/controlador/accionhttp://nombreProyecto/modulo/controlador/accion
http://nombreProyecto/modulo/controlador/accion/variable1/valor1
Nuestra URL http://contabilidad/index indica que nuestro controlador por defecto es IndexController y nuestra acción por defecto es indexAction, ademas que nuestra vista por defecto es index.phtml, en la siguiente gráfica queda explicado el proceso.
La gráfica es una representación básica de como se ejecuta el proceso, faltando el Front Controller como el componente que permite enrutar todas las peticiones.
El IndexController básico es:
class IndexController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
// El código en este método se ejecutará antes que el Predispatch
}
public function indexAction()
{
// action body
}
}
El método init() es el último método del constructor de la clase padre Zend_Controller_Action y permite inicializar nuestro controller cada que es llamado por el Front Controller en el proceso de dispatch, la configuración dada afectará todo el Controlador.
Dentro del controlador están las acciones o métodos que realizaran funciones especificas, cada nombre de acción tendrá como sufijo "Action" por ejemplo indexAction(), listaAction(),etc. En el controlador podemos tener métodos que no tengan este sufijo y ser llamados de forma interna, no son publicamente accesibles.
Crear nuevos Controlllers desde NetBeans
Mediante Zend_Tool NetBeans automaticamente creará el Controller y los metodos por defecto, al igual que las vistas respectivas en view/scripts/nuevocontrolador.
Los Controllers soportan action helper y plugin, los plugins se utilizan para ejecutar algo especifico en cada petición a la aplicación, como por ejemplo verificar si el usuario esta registrado, que perfil tiene el usuario,etc. Los Action Helpers son tareas mucho más especificas y permiten compartir información entre controladores