# 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.

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

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.env = APPLICATION_ENV

## 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;