Buenas prácticas oficiales de Symfony

2.3. Estructurando la aplicación

Una vez creada la aplicación, entra en el directorio blog/ y verás la siguiente jerarquía de archivos y directorios:

blog/
├─ app/
│  ├─ console
│  ├─ cache/
│  ├─ config/
│  ├─ logs/
│  └─ Resources/
├─ src/
│  └─ AppBundle/
├─ vendor/
└─ web/

Symfony propone esta jerarquía de archivos y directorios para estructurar tus aplicaciones. El propósito de cada archivo/directorio es el siguiente:

  • app/cache/, almacena todos los archivos de caché generados por la aplicación.
  • app/config/, almacena toda la información definida para cada entorno de ejecución.
  • app/logs/, almacena todos los archivos de log donde se guardan los mensajes de log generados por la aplicación.
  • app/Resources/, almacena todas las plantillas de la aplicación y todos los archivos de traducciones.
  • src/AppBundle/, almacena todo el código específico de Symfony (controladores, rutas, etc.) y todo tu código propio (clases de tu lógica de negocio, entidades de Doctrine, etc.)
  • vendor/, este es el directorio donde Composer instala las dependencias de la aplicación y por tanto nunca deberías tocar nada en este directorio.
  • web/, almacena los controladores frontales y todos los assets relacionados con el frontend, tales como archivos CSS, archivos JavaScript y las imágenes.