# Zend_Application_Resource_Frontcontroller

Probablemente el recurso más común que se carga con `Zend_Application` será el recurso Front Controller , que proporciona la habilidad para configurar `Zend_Controller_Front` . Este recurso ofrece la posibilidad de establecer parámetros arbitrarios del Front Controller, especificar plugins para inicializar, y mucho más.

Una vez inicializado, el recurso asigna la propiedad del `$frontController` del bootstrap a la instancia `Zend_Controller_Front` .

Las claves de configuración disponibles incluyen las siguientes, sin importar si son mayúsculas ó minúsculas:

- controllerDirectory :: ya sea un valor de string especificando un único directorio controlador, o un array de pares de directorio módulo/controlador.

- moduleControllerDirectoryName : un valor de string indicando el subdirectorio bajo el cual un módulo contiene controladores.

- moduleDirectory : directorio bajo el cual pueden encontrarse los módulos.

- defaultControllerName : Nombre base del controlador por defecto (normalmente, "índex").

- defaultAction : nombre base de la acción por defecto (normalmente, "índex").

- defaultModule : nombre base del módulo por defecto (normalmente, "default").

- baseUrl : base explícita a la URL de la aplicación (normalmente auto-detect).

- plugins : array con los nombres de los plugins de las clases de los Front Controllers. El recurso instanciará a cada clase (sin argumentos al constructor) y luego registra la instancia con el Front Controller. If you want to register a plugin with a particular stack index, you need to provide an array with two keys class and stackIndex.

- params : array de pares clave/valor para registrarse con el front controller.

- returnresponse: whether or not to return the response object after dispatching the front controller. Value should be a boolean; by default, this is disabled.

Si se ingresa una clave no reconocida, ésta será registrada como un parámetro de Front Controller pasándolo a `setParam()` .

## Ejemplo Front Controller resource configuration

A continuación, INI es un snippet para mostrar cómo configurar el recurso Front Controller.

    [production]
    resources.frontController.controllerDirectory = APPLICATION_PATH . "/controllers"
    resources.frontController.moduleControllerDirectoryName = "actions"
    resources.frontController.moduleController = APPLICATION_PATH .  "/modules"
    resources.frontController.defaultControllerName = "site"
    resources.frontController.defaultAction = "home"
    resources.frontController.defaultModule = "static"
    resources.frontController.baseUrl = "/subdir"
    resources.frontController.plugins.foo = "My_Plugin_Foo"
    resources.frontController.plugins.bar = "My_Plugin_Bar"
    resources.frontController.plugins.baz.class = "My_Plugin_Baz"
    resources.frontController.plugins.baz.stackIndex = 123
    resources.frontController.returnresponse = 1
    resources.frontController.env = APPLICATION_ENV

    ; The following proxies to:
    ; Zend_Controller_Action_HelperBroker::addPath('Helper_Path', $helperPrefix);
    resources.frontController.actionHelperPaths.HELPER_Prefix = "My/Helper/Path"

## Recuperar el Front Controller de su arranque (bootstrap)

Una vez que el recurso de su Front Controller ha sido inicializado, se puede recuperar la instancia de Front Controller a través de la propiedad `$frontController` de su bootstrap.

    $bootstrap->bootstrap('frontController');
    $front = $bootstrap->frontController;