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.