Aquí os dejo algo de información sobre como solicitar variables de configuración en symfony además de un listado muy útil con todas las variables que Symfony trae predefinidas.
Cómo pedir variables definidas
Se puede llamar a la función estática get del objeto sfConfig para solicitar cualquier variable definida pasándo dos valores. El primero indica el nombre de la variable solicitada y el segundo, el valor que retornará en caso de no existir dicha variable.
sfConfig::get('sf_config_variable', 'The default value'); // The default is optional
Además de las variables que symfony trea configuradas por defecto, podemos añadir nuestras propias variables. Esto se hace en los archivos app.yml. Tenemos un app.yml global para todas las aplicaciones y módulos de nuestro proyecto localizado en:
/path/to/project/[PROJECT_NAME]/config/app.yml
y otro para cada una de las aplicaciones:
/path/to/project/[PROJECT_NAME]/apps/[APP_NAME]/config/app.yml
NOTA! Si existen dos variables con el mismo nombre en el app.yml global y en el de aplicación, este último valor sobreescribirá el valor global.
Para solicitar una variable definida en uno de estos archivos app.yml devemos añadir app_ al nombre de la variable como se muestra en el siguiente ejemplo:
sfConfig::get('app_sf_config_variable');
Si en el archivo app.yml definimos la variable en cascada, como por ejemplo:
all:
admin:
email: admin@mail.bla
Deberemos acceder a ella añadiendo los diferentes niveles en la llamada:
sfConfig::get('app_admin_email');
También podemos acceder a los valores configurados en settings.yml añadiendo el prefijo “sf_” al valor que queremos recuperar.
Variables definidas por Symfony Framework
sf_symfony_lib_dir
Path real a la carpeta lib del framework:
/usr/share/php/symfony/symfony12/lib
Project Structure and Layout
sf_root_dir
Path a la raiz del projecto:
/path/to/project/[PROJECT_NAME]
sf_apps_dir
Path a la carpeta “apps” del proyecto:
/path/to/project/[PROJECT_NAME]/apps
sf_lib_dir
Path a la carpeta “lib” del proyecto:
/path/to/project/[PROJECT_NAME]/lib
sf_log_dir
Path a la carpeta “log” del proyecto:
/path/to/project/[PROJECT_NAME]/log
sf_data_dir
Path a la carpeta “data” del proyecto:
/path/to/project/[PROJECT_NAME]/data
sf_config_dir
Path a la carpeta “config” del proyecto:
/path/to/project/[PROJECT_NAME]/config
sf_test_dir
Path a la carpeta “test” del proyecto:
/path/to/project/[PROJECT_NAME]/test/
sf_doc_dir
Path a la carpeta “doc” del proyecto:
/path/to/project/[PROJECT_NAME]/doc
sf_plugins_dir
Path a la carpeta de “plugins” del proyecto:
/path/to/project/[PROJECT_NAME]/plugins
sf_cache_dir
Path a la carpeta “cache” del proyecto:
/path/to/project/[PROJECT_NAME]/cache
sf_web_dir
Path a la carpeta pública “web”:
/path/to/project/[PROJECT_NAME]/web
sf_upload_dir
Path a la carpeta pública de “uploads”:
/path/to/project/[PROJECT_NAME]/web/uploads
Application Information
sf_app
El nombre de la aplicación en la que está el archivo, como por ejemplo “frontend” o “backend”.
sf_environment
Entorno de desarrollo actual como por ejemplo “dev”.
sf_debug
Devuelve el estado actual del modo debug. Puede estar activado “1″ o desactivado “0″.
Application Structure and Layout
sf_app_dir
Path a la carpeta de la aplicación actual:
/path/to/project/[PROJECT_NAME]/apps/[APP_NAME]
sf_app_config_dir
Path a la carpeta “config” de la aplicación actual:
/path/to/project/[PROJECT_NAME]/apps/[APP_NAME]/config
sf_app_lib_dir
Path a la carpeta “lib” de la aplicación actual:
/path/to/project/[PROJECT_NAME]/apps/[APP_NAME]/lib
sf_app_module_dir
Path a la carpeta “modules” de la aplicación actual:
/path/to/project/[PROJECT_NAME]/apps/[APP_NAME]/modules
sf_app_template_dir
Path a la carpeta “templates” de la aplicación actual:
/path/to/project/[PROJECT_NAME]/apps/[APP_NAME]/templates
sf_app_i18n_dir
Path a la carpeta “i18n” de la aplicación actual:
/path/to/project/[PROJECT_NAME]/apps/[APP_NAME]/i18n
Cache Structure and Layout
sf_app_base_cache_dir
Path a la carpeta de la aplicación actual dentro de la caché.
/path/to/project/[PROJECT_NAME]/cache/[APP_NAME]
sf_app_cache_dir
Path a la carpeta de la aplicación actual en el entorno de desarrollo actual dentro de la caché.
/path/to/project/[PROJECT_NAME]/cache/[APP_NAME]/dev
sf_template_cache_dir
Path a la carpeta “template” de la aplicación actual en el entorno de desarrollo actual dentro de la caché.
/path/to/project/[PROJECT_NAME]/cache/[APP_NAME]/dev/template
sf_i18n_cache_dir
Path a la carpeta “i18n” de la aplicación actual en el entorno de desarrollo actual dentro de la caché.
/path/to/project/[PROJECT_NAME]/cache/[APP_NAME]/dev/i18n
sf_config_cache_dir
Path a la carpeta “config” de la aplicación actual en el entorno de desarrollo actual dentro de la caché.
/path/to/project/[PROJECT_NAME]/cache/[APP_NAME]/dev/config
sf_test_cache_dir
Path a la carpeta “test” de la aplicación actual en el entorno de desarrollo actual dentro de la caché.
/path/to/project/[PROJECT_NAME]/cache/[APP_NAME]/dev/test
sf_module_cache_dir
Path a la carpeta “modules” de la aplicación actual en el entorno de desarrollo actual dentro de la caché.
/path/to/project/[PROJECT_NAME]/cache/[APP_NAME]/dev/modules
Application Settings
sf_error_404_module
Módulo que ha hecho saltar el error 404.
sf_error_404_action
Acción que ha hecho saltar el error 404.
sf_logging_enabled
Valor boleano que nos indica si el loggin de la web está activo “1″ o no “0″.
sf_escaping_strategy
Valor boleano que indica si la clase sfView está usando Escaping Strategy “1″ o no “0″.
sf_no_script_name
Valor boleano que indica si la aplicación requiere nombre de script.
sf_csrf_secret
La clave CSRF secreta configurada en la aplicación.
También:
Se puede acceder a la información del actual contexto con las siguientes funciones:
sfContext::getInstance()->getActionName();
Devuelve el nombre de la acción actual. También puede llamarse desde los templates con $this->getActionName().
sfContext::getInstance()->getModuleName();
Nombre del módulo actual. También puede llamarse desde los templates con $this->getModuleName().
sfContext::getInstance()->getModuleDirectory();
Path al directorio del módulo actual:
/path/to/project/[PROJECT_NAME]/apps/[APP_NAME]/modules/[MODULE_NAME]