- Capítulo 1. Symfony2 y los fundamentos de HTTP
- 1.1. HTTP es simple
- 1.2. Peticiones y respuestas en PHP
- 1.3. Peticiones y respuestas en Symfony
- 1.4. El viaje desde la petición hasta la respuesta
- 1.5. Symfony2: construye tu aplicación, no tus herramientas
- Capítulo 2. De PHP a Symfony2
- 2.1. Un blog sencillo creado con PHP simple
-
2.2.
Agregando una página
show
al blog - 2.3. El controlador frontal al rescate
- 2.4. Mejorando las plantillas
- Capítulo 3. Instalando y configurando Symfony2
- 3.1. Instalando una distribución de Symfony2
- 3.2. Empezando a desarrollar
- 3.3. Usando control de código fuente
- Capítulo 4. Creando páginas en Symfony2
- 4.1. La página ¡Hola Symfony!
- 4.2. Antes de empezar, crea el bundle
- 4.3. La estructura de directorios
- 4.4. El sistema de bundles
- 4.5. Configurando la aplicación
- 4.6. Entornos
- 4.7. Resumen
- Capítulo 5. El controlador
- 5.1. Ciclo de vida de la petición, controlador, respuesta
- 5.2. Un controlador sencillo
- 5.3. Asociando una URI a un controlador
- 5.4. La clase base del controlador
- 5.5. Tareas comunes del controlador
- 5.6. Gestionando errores y páginas 404
- 5.7. Gestionando la sesión
-
5.8.
El objeto
Response
-
5.9.
El objeto
Request
- 5.10. Resumen
- Capítulo 6. El enrutamiento
- 6.1. El enrutamiento en la práctica
- 6.2. Funcionamiento interno del enrutamiento
- 6.3. Creando rutas
- 6.4. El nombre lógico de los controladores
- 6.5. Variables de la ruta y argumentos del controlador
- 6.6. Importando recursos de enrutamiento externos
- 6.7. Visualizando y depurando rutas
- 6.8. Generando URL
- 6.9. Resumen
- Capítulo 7. Creando y utilizando plantillas
- 7.1. Plantillas
- 7.2. Herencia de plantillas y layout
- 7.3. Nomenclatura y localización de las plantillas
- 7.4. Etiquetas y helpers
- 7.5. Incluyendo hojas de estilo y JavaScript en Twig
- 7.6. Variables globales
-
7.7.
Configurando y usando el servicio
templating
- 7.8. Modificando las plantillas de los bundles
- 7.9. Herencia de tres niveles
- 7.10. Mecanismo de escape
- 7.11. Depurando
- 7.12. Detectando errores de sintaxis
- 7.13. Formato de plantillas
- 7.14. Consideraciones finales
- Capítulo 8. La base de datos y Doctrine
- 8.1. Un ejemplo sencillo
- 8.2. Buscando objetos
- 8.3. Relaciones y asociaciones de entidades
- 8.4. Configuración
- 8.5. Lifecycle Callbacks
- 8.6. Referencia de los tipos de campo de Doctrine
- 8.7. Resumen
- Capítulo 9. La base de datos y Propel
- Capítulo 10. Tests unitarios y funcionales
- 10.1. El framework de pruebas PHPUnit
- 10.2. Tests unitarios
- 10.3. Tests funcionales
- 10.4. Trabajando con el cliente de los tests
-
10.5.
El
Crawler
- 10.6. Configurando los tests
- Capítulo 11. Validación
- 11.1. Los fundamentos de la validación
- 11.2. Configuración
- 11.3. Restricciones
- 11.4. Traduciendo mensajes de restricción
- 11.5. Aplicando las restricciones sobre propiedades y getters
- 11.6. Grupos de validación
- 11.7. Secuencias de grupos de validación
- 11.8. Validando valores y arrays
- 11.9. Consideraciones finales
- Capítulo 12. Formularios
- 12.1. Creando un formulario sencillo
- 12.2. Validando formularios
- 12.3. Tipos de campo predefinidos
- 12.4. Deduciendo el tipo de campo
- 12.5. Mostrando un formulario en una plantilla
- 12.6. Modificando la acción y el método de un formulario
- 12.7. Creando clases de formulario
- 12.8. Definiendo formularios como servicios
- 12.9. Formularios y Doctrine
- 12.10. Embebiendo formularios
- 12.11. Temas para formularios
- 12.12. Protección CSRF
- 12.13. Usando un formulario sin clase
- 12.14. Consideraciones finales
- Capítulo 13. Seguridad
- 13.1. Ejemplo básico: Autenticación HTTP
- 13.2. Cómo funciona la seguridad: autenticación y autorización
- 13.3. Usando el típico formulario de acceso
- 13.4. Autorización
- 13.5. Usuarios
- 13.6. Roles
- 13.7. Controlando el acceso en las plantillas
- 13.8. Controlando el acceso
- 13.9. Cerrando sesión
- 13.10. Autenticación sin estado
- 13.11. Utilidades
- 13.12. Consideraciones finales
- Capítulo 14. La caché de HTTP
- 14.1. Utilizando los estándares para la caché
- 14.2. Las cachés de tipo gateway cache
- 14.3. Introducción a la caché de HTTP
- 14.4. Caducidad y validación HTTP
- 14.5. Utilizando ESI
- 14.6. Invalidando la caché
- 14.7. Resumen
- Capítulo 15. Internacionalización
- 15.1. Configurando
- 15.2. Traducción básica
- 15.3. Pluralizando
- 15.4. Traducciones en plantillas
- 15.5. Catálogos de mensajes
- 15.6. Usando el dominio de los mensajes
- 15.7. Gestionando la configuración regional del usuario
- 15.8. Seleccionando el idioma de la traducción
- 15.9. Traduciendo mensajes de validación
- 15.10. Traduciendo contenido de base de datos
- 15.11. Resumen
- Capítulo 16. El contenedor de servicios
- 16.1. ¿Qué es un servicio?
- 16.2. ¿Qué es un contenedor de servicios?
- 16.3. Creando y configurando servicios en el contenedor
- 16.4. Parámetros de servicio
- 16.5. Importando otros recursos para configurar el contenedor
- 16.6. Inyectando servicios
- 16.7. Inyectando servicios opcionales
- 16.8. Servicios internos de Symfony y servicios de bundles de terceros
- 16.9. Etiquetas
- 16.10. Depurando servicios
- Capítulo 17. Mejorando el rendimiento
- 17.1. Utilizando una caché de bytecode
- 17.2. Utilizando el mapeo de clases de Composer
- 17.3. Guardando en la caché el cargador automático de clases
- 17.4. Utilizando archivos de arranque
- Capítulo 18. El interior de Symfony2
- 18.1. Una visión general del funcionamiento de Symfony2
- 18.2. El kernel
- 18.3. El event dispatcher
- 18.4. El perfilador
- Capítulo 19. La API estable de Symfony2
Symfony 2.3, el libro oficial
Escrito por Fabien Potencier, Ryan Weaver · Traducido por Javier Eguiluz