Ver índice de contenidos del libro

4.5. Configurando la aplicación

La aplicación está formada por una colección de bundles que representan todas las características y capacidades de tu aplicación. Cada bundle se puede personalizar a través de archivos de configuración escritos en YAML, XML o PHP. De forma predeterminada, el archivo de configuración principal se encuentra en el directorio app/config/ y se llama config.yml, config.xml o config.php en función del formato que prefieras:

# app/config/config.yml
imports:
    - { resource: parameters.ini }
    - { resource: security.yml }

framework:
    secret:          "%secret%"
    charset:         UTF-8
    router:          { resource: "%kernel.root_dir%/config/routing.yml" }
    form:            true
    csrf_protection: true
    validation:      { enable_annotations: true }
    templating:      { engines: ['twig'] } #assets_version: SomeVersionScheme
    session:
        default_locale: "%locale%"
        auto_start:     true
 
# Twig Configuration
twig:
    debug:            "%kernel.debug%"
    strict_variables: "%kernel.debug%"
 
# ...
<!-- app/config/config.xml -->
<imports>
    <import resource="parameters.ini" />
    <import resource="security.yml" />
</imports>
 
<framework:config charset="UTF-8" secret="%secret%">
    <framework:router resource="%kernel.root_dir%/config/routing.xml" />
    <framework:form />
    <framework:csrf-protection />
    <framework:validation annotations="true" />
    <framework:templating assets-version="SomeVersionScheme">
        <framework:engine id="twig" />
    </framework:templating>
    <framework:session default-locale="%locale%" auto-start="true" />
</framework:config>
 
<!-- Twig Configuration -->
<twig:config debug="%kernel.debug%" strict-variables="%kernel.debug%" />
 
<!-- ... -->
$this->import('parameters.ini');
$this->import('security.yml');
 
$container->loadFromExtension('framework', array(
    'secret'          => '%secret%',
    'charset'         => 'UTF-8',
    'router'          => array('resource' => '%kernel.root_dir%/config/routing.php'),
    'form'            => array(),
    'csrf-protection' => array(),
    'validation'      => array('annotations' => true),
    'templating'      => array(
        'engines' => array('twig'),
        #'assets_version' => "SomeVersionScheme",
    ),
    'session' => array(
        'default_locale' => "%locale%",
        'auto_start'     => true,
    ),
));
 
// Configuración Twig
$container->loadFromExtension('twig', array(
    'debug'            => '%kernel.debug%',
    'strict_variables' => '%kernel.debug%',
));
 
// ...

Nota Aprenderás cómo cargar cada archivo y formato en la siguiente sección dedicada a los entornos de ejecución.

Cada opción de nivel superior como framework o twig define la configuración de un bundle específico. Por ejemplo, la clave framework define la configuración para el núcleo de Symfony FrameworkBundle e incluye la configuración de enrutamiento, plantillas, y otros elementos del núcleo.

No te preocupes por el momento de las opciones de configuración específicas de cada sección, ya que el archivo de configuración viene con parámetros predeterminados. A medida que leas y explores más cada parte de Symfony2, aprenderás sobre las opciones de configuración específicas de cada característica.