El sitio web www.vuestroslibros.com utiliza cookies propias y de terceros para recopilar información que ayuda a optimizar su visita a sus páginas web.
No se utilizarán las cookies para recoger información de carácter personal. Usted puede permitir su uso o rechazarlo; también puede cambiar su configuración siempre que lo desee.
Encontrará mas información en nuestra política de Cookies.

ACEPTAR Leer más

 
Symfony 3 | 9782409018015 | Portada

SYMFONY 3

Desarrolle sitios web PHP estructurados y con buen rendimiento

Bilal AMARNI

Precio: 38.00€

Oferta: 36.10€ (-5%)

Añadir a la cesta

Datos técnicos

  • ISBN 9782409018015
  • Año Edición 2019
  • Páginas 504
  • Encuadernación Rústica
  • Idioma Español
 

Sinopsis

Prefacio de Jordi BOGGIANO - Miembro del equipo Symfony - Creador de Composer

Este libro sobre Symfony 3 se dirige a los desarrolladores, jefes de proyecto y directores técnicos, que quieran, gracias a este framework, estructurar y organizar sus desarrollos PHP dentro de un marco de trabajo robusto y profesional. El dominio de la programación orientada a objetos con PHP es un requisito previo indispensable para sacar el mejor beneficio de estas páginas.

El libro cubre los principales componentes de Symfony 3, considerado en la actualidad como framework PHP de referencia. Proporciona el conocimiento básico que le permite, no solo crear un sitio web, sino también entender y dominar su funcionamiento con todo detalle. Un capítulo entero se dedica a la arquitectura del framework.

Los asuntos detallados van desde la instalación de Symfony a la creación de las pruebas unitarias y funcionales. La gestión de los formularios, las interacciones con una base de datos, las plantillas, las trazas e incluso la seguridad de la aplicación, son otros de los temas tratados en el libro.

El tiempo de carga de las páginas de un sitio web es un elemento crucial. Hay un capítulo dedicado a las técnicas y trucos para mejorar mucho el rendimiento de una aplicación.

El autor ha estructurado los capítulos para facilitar el aprendizaje de Symfony 3 y muestra a lo largo de las páginas de este libro, consejos, buenas prácticas y ejemplos detallados.

Hay elementos adicionales para su descarga en el sitio web www.ediciones-eni.com.

Índice

Introducción
1. Introducción
2. Público objetivo
3. ¿ Por qué un framework ?
3.1 header() y echo
3.2 Evitar la globalidad
3.3 No reinventar la rueda
4. ¿ Por qué Symfony ?
5. Requisitos previos
6. Objetivos del libro
Arquitectura del framework
1. El patrón de diseño MVC
1.1 Definiciones
1.1.1 La vista
1.1.2 El modelo
1.1.3 El controlador
1.2 En la práctica
1.2.1 El controlador front
1.2.2 El enrutamiento
1.2.3 El controlador y el modelo
1.2.4 La vista
2. Arquitectura de Symfony
2.1 Esquema
2.2 El Service Container
2.3 ¿ Un framework MVC ?
2.4 Una flexibilidad a toda prueba
3. Los bundles
3.1 Concepto
3.2 Un ecosistema maduro
4. Los entornos
4.1 Principio
4.2 En la práctica
4.2.1 Contexto HTTP
4.2.2 Contexto CLI (Command Line Interface)
4.2.3 Ejemplos de diferencias según el entorno
Empezar con Symfony
1. Crear un proyecto en Symfony
1.1 La edición “estándar”
1.2 Requisitos previos
1.3 Instalación con el instalador Symfony (Linux y Mac OS)
1.4 Instalación con Composer
1.4.1 Instalar Composer
1.4.2 Crear un proyecto
1.4.3 Las versiones
2. Descubrir Symfony
2.1 Configurar su servidor web
2.1.1 Servidor web PHP
2.1.2 Apache y Nginx
2.2 Estructura de la aplicación
3. La consola
3.1 Ubicación
3.2 Los comandos
3.2.1 Listar los comandos disponibles
3.2.2 Ejecutar un comando
3.3 Las opciones
3.4 Los argumentos
3.5 El comando help
3.6 Ejecutar rápidamente comandos
3.6.1 Los accesos directos
3.6.2 El completado automático
4. La autocarga de clases
4.1 El estándar PSR-4
4.2 Otros mecanismos
4.3 El archivo vendor/autoload.php
5. Instalar un bundle
5.1 Bundle de aplicación específico al proyecto
5.1.1 Presentación
5.1.2 Crear un bundle
5.2 Bundle de terceros
Enrutamiento y controlador
1. Entender el enrutamiento
1.1 Definición
1.2 El directorio web y el controlador front
1.3 Una consulta, una acción
2. Formato de las rutas
2.1 Diferentes métodos
2.2 Las anotaciones
3. Configurar el path
3.1 El path /hello/world
3.2 Entender la notación del controlador
3.3 Elegir su formato
3.4 Importar sus rutas desde archivos externos
3.5 Utilizar argumentos de sustitución
3.6 Entender el orden de carga de las rutas
3.7 Añadir prefijos a las rutas
3.8 Añadir restricciones
4. Enrutamiento por nombre de dominio
4.1 Requisitos previos
4.2 Ejemplo
4.3 Explicaciones
5. El controlador
5.1 Recuperar un servicio
5.2 Utilizar los “argumentos mágicos”
5.2.1 Argumentos de sustitución de las rutas
5.2.2 Ejemplos
5.3 Generar una URL
5.4 Realizar una redirección
5.5 Redirección interna
5.6 Enviar las páginas de error
5.6.1 El controlador
5.6.2 La vista
La inyección de dependencias
1. Una alternativa al Singleton
1.1 Presentación del Singleton
1.2 Ejemplo
1.3 Un patrón de diseño a utilizar con cuidado
2. La inyección de dependencias
2.1 La inyección de dependencias por el constructor
2.2 La inyección de dependencias por setter (conmutador)
2.3 La inyección de dependencias por propiedad
2.4 Las ventajas
2.5 Una ejecución más compleja
3. El Service Container
3.1 Los servicios
3.2 Explicaciones a través de un servicio X
4. Crear un servicio y configurar sus inyecciones
4.1 Crear un servicio
4.2 Inyección por constructor
4.3 Inyección por método
4.4 Inyección por propiedad
4.5 Inyección automática con autowiring
4.6 Utilizar argumentos
4.7 Crear servicios “lazy”
5. Las extensiones de bundle
5.1 El directorio DependencyInjection
5.2 Las definiciones de servicios desde un bundle
5.3 La configuración
5.3.1 Definir una arborescencia
5.3.2 Las diferentes etapas del tratamiento de la configuración
5.3.3 Recuperar la configuración validada
5.4 “Compiler Passes
5.4.1 Concepto
5.4.2 Los tags
5.4.3 El Compiler Pass
Las plantillas con Twig
1. Un lenguaje accesible
1.1 Visión general
1.2 ¿ Por qué un nuevo lenguaje ?
1.3 Puesta en práctica
1.4 Observaciones sobre la utilización
1.5 Notaciones de las plantillas
1.6 La anotación @Plantilla
2. Layouts (plantillas de página) y blocks
3. Estructuras de control y tags
3.1 Las condiciones
3.2 Los bucles
3.3 Crear y modificar variables
3.4 Twig y el escapado
3.4.1 El tag autoescape
3.4.2 Escapado unitario
3.4.3 Modificar la estrategia global (usuarios avanzados)
3.5 Incluir plantillas
4. Los filtros y las funciones
4.1 Los filtros
4.1.1 Utilización y sintaxis
4.1.2 Cadenas de caracteres
4.1.3 Escape
4.1.4 La codificación
4.2 Las funciones
4.2.1 Twig y el enrutamiento
4.2.2 Depuración con la función dump
5. Recursos públicos (imágenes, hojas de estilo, scripts JS...)
5.1 ¿ Cómo se sincronizan estos recursos ?
5.2 Referenciar los recursos públicos desde una plantilla
Las bases de datos con Doctrine2
1. Conceptos de DBAL, entidad y ORM
1.1 DBAL
1.2 Entidad
1.3 ORM
2. Instalar y configurar DoctrineBundle
2.1 Instalación
2.2 Configuración
3. Las entidades y su mapping
3.1 Caso práctico: listar los libros
3.1.1 La entidad
3.1.2 El mapping
3.2 Definir una entidad con @ORM\Entity
3.3 Gestionar las columnas de la tabla con @ORM\Column
3.3.1 Name
3.3.2 Type
3.3.3 length
3.3.4 unique
3.3.5 nullable
3.3.6 precision y scale
3.4 @ORM\Table
3.5 Las claves primarias
3.6 Configurar los índices
3.6.1 @ORM\Index
3.6.2 @ORM\UniqueConstraint
3.7 Las relaciones (claves extranjeras)
3.7.1 @ORM\OneToOne
3.7.2 @ORM\ManyToOne
3.7.3 @ORM\ManyToMany
3.7.4 Relaciones bidireccionales
3.7.5 Reparar los errores de mapping
4. Utiliza la EntityManager
4.1 Inserción de datos
4.2 Modificación de datos
4.3 Eliminación de datos
4.4 Otras acciones de la EntityManager
4.4.1 refresh()
4.4.2 detach()
4.5 Las operaciones en cascada
5. Los repositorios y el DQL
5.1 Los repositorios
5.1.1 Una función de centralizador
5.1.2 Los métodos básicos del repository
5.1.3 Los métodos personalizados del repository
5.2 El DQL
5.2.1 SELECT
5.2.2 FROM
5.2.3 JOIN y LEFT JOIN
5.2.4 WHERE
5.2.5 ORDER BY
5.2.6 Los límites
5.2.7 Los límites y la paginación
5.3 El QueryBuilder
6. Algunos trucos
6.1 Utilización del @ParamConverter
6.2 Las extensiones Doctrine
6.2.1 Instalación
6.2.2 Utilización de un slug en una entidad
El administrador de eventos
1. Una historia de escuchas
1.1 El dispatching
1.2 Los listeners
2. Los eventos del Kernel
2.1 Los eventos
2.2 Ejemplo: realizar tareas asíncronas
3. Los eventos de la consola
3.1 Requisitos previos
3.2 Los eventos
Utilizar los formularios
1. Una librería MVC
1.1 El modelo
1.2 El controlador
1.3 La vista
2. Funcionamiento del componente
2.1 El objeto “Form”
2.1.1 Submit
2.1.2 Validación
2.1.3 Vista
2.2 Los tipos
2.3 Las opciones
2.4 Los objetos “Form” y “FormBuilder”
2.4.1 El FormBuilder
2.4.2 Estructura del objeto Form
2.5 El mapping con el objeto de la capa Modelo
2.6 Las diferentes representaciones de los valores
2.6.1 Transformación de los datos
2.6.2 Ilustración con el tipo Date
3. Los tipos
3.1 La herencia
3.2 FormType
3.2.1 label
3.2.2 label attr
3.2.3 data
3.2.4 required
3.2.5 disabled
3.2.6 mapped
3.2.7 property_path
3.2.8 attr
3.2.9 trim
3.2.10 error_bubbling
3.3 TextType
3.4 PasswordType
3.5 RepeatedType
3.5.1 type
3.5.2 first_options y second_ options
3.5.3 options
3.5.4 first_name
3.5.5 second_name
3.5.6 invalid_message
3.6 ChoiceType
3.6.1 choices
3.6.2 expanded y multiple
3.6.3 placeholder
3.6.4 preferred_choices
3.6.5 Tipo similares
3.7 EntityType
3.7.1 class
3.7.2 choice_label
3.7.3 query_builder
3.7.4 group_by
3.7.5 em
3.8 DateType
3.8.1 widget
3.8.2 format
3.8.3 model_timezone
3.8.4 view_timezone
3.8.5 years
3.8.6 months
3.8.7 days
3.8.8 placeholder
3.8.9 Tipos similares
3.9 FileType
3.9.1 multiple
3.9.2 Recuperar los archivos
3.9.3 Tratar los archivos
3.10 CheckboxType
3.11 SubmitType, ResetType y ButtonType
4. Validación de los datos
4.1 Objetivo
4.2 Utilización
4.2.1 Restricciones
4.2.2 Configuración de las restricciones
4.2.3 Los diferentes formatos de configuración
4.2.4 Las opciones
4.2.5 Validación de un objeto fuera del contexto de un formulario
4.3 Lista de restricciones y sus opciones
4.3.1 NotBlank y NotNull
4.3.2 IsNull y Blank
4.3.3 IsTrue, IsFalse
4.3.4 Type
4.3.5 Email, Url y Ip
4.3.6 Regex
4.3.7 Length, Count
4.3.8 Range
4.3.9 Comparaciones
4.3.10 Fechas
4.3.11 File
4.3.12 Imagen
4.3.13 Choice
4.3.14 UniqueEntity
4.3.15 Datos financieros
4.3.16 Callback
4.3.17 All
4.3.18 Valid
4.4 Grupos de validación
5. Crear formularios reutilizables
5.1 La clase AbstractType
5.2 Utilizar un formulario definido en una clase
5.2.1 Instanciación manual
5.2.2 Con la inyección de dependencias
6. Personalizar la representación - temas de formularios
6.1 Visualizar el formulario manualmente
6.1.1 form_start()
6.1.2 form_end()
6.1.3 form_widget()
6.1.4 form_errors()
6.1.5 form_label()
6.1.6 form_row()
6.1.7 form_rest()
6.1.8 form_enctype()
6.1.9 Arborescencia de las partes de formularios
6.2 Crear temas
6.2.1 Formulario de ejemplo
6.2.2 Crear y asociar un tema de formularios
6.2.3 Entender el nombre de los blocks
La seguridad
1. Presentación
2. Autenticación
2.1 Cortafuegos
2.2 Cortafuegos para recursos estáticos/desarrollo
2.3 Autenticación HTTP
2.4 Autenticación por formulario de conexión
2.5 Desconexión
3. Usuarios y roles
3.1 Recuperar el usuario actual
3.2 El usuario
3.3 Los proveedores de usuarios
3.3.1 En memoria
3.3.2 Proveedor de usuarios de bases de datos
3.3.3 Proveedor de usuarios personalizado
3.3.4 Notas adicionales
3.4 Cifrado de las contraseñas
3.4.1 Codificadores
3.4.2 Hash
3.4.3 Cifrar una contraseña
3.5 Los roles
4. Autorizaciones
4.1 Los roles, en el núcleo del proceso
4.2 Comprobar el rol del usuario
4.3 Securizar una acción
4.4 Securizar una sección de la aplicación
4.5 Securizar según otros criterios
4.6 Para ir más allá
Logging y monitoring
1. Crear logs con Monolog
1.1 Logging
1.2 Monolog
1.2.1 El estándar PSR-3
1.2.2 MonologBundle
1.3 El servicio logger
1.4 El archivo de logs
1.4.1 Identificar la causa de un error
1.4.2 El problema
1.5 Los administradores (handlers)
1.5.1 Definir varios administradores
1.5.2 Enviar los logs por correo electrónico
1.5.3 Utilizar un buffer
1.5.4 Añadir información adicional
1.6 Las canales (channels)
1.6.1 Añadir sus propios canales
1.6.2 Enviar un registro a un canal dado
1.6.3 Configurar los administradores por canales
1.6.4 Gestión de los errores 404
2. El monitoring con Prometheus y Grafana
2.1 Un aliado proactivo del logging
2.2 Preparación de una aplicación Symfony para Prometheus
2.3 Instrumentalizar las métricas
2.4 Para ir más allá
Probar su aplicación Symfony
1. Las pruebas unitarias y funcionales
1.1 Concepto
1.1.1 El automóvil
1.1.2 Las pruebas en Symfony
1.2 Instalación de PHPUnit
2. Pruebas unitarias
2.1 Ejecutar las pruebas
2.2 Ejecutar una parte de las pruebas
3. Pruebas funcionales
3.1 Probar una acción
3.2 El objeto Client
3.3 El objeto Crawler
3.4 Hacer submit de un formulario
3.5 Para ir más allá
Mejorar el rendimiento de su aplicación
1. El cacheado de las páginas
1.1 Alrededor del protocolo HTTP
1.2 El proxy inverso (o“reverse proxy”)
1.2.1 HttpCache
1.2.2 Nginx
1.2.3 Varnish
1.3 Los encabezados
1.4 Las respuestas públicas y privadas
1.5 La expiración
1.5.1 El encabezado Expires
1.5.2 Las directivas max-age y s-max-age
1.5.3 La anotación @Cache
1.6 La validación
1.6.1 Por fecha con Last-Modified
1.6.2 Por hash del encabezado ETag
1.7 Las ESI
1.7.1 Activación
1.7.2 Generar una etiqueta ESI
2. La autocarga de las clases
2.1 Generar un classmap
2.2 Englobar el cargador de clase de Composer
3. La caché con Doctrine
3.1 Los diferentes tipos de caché
3.1.1 La caché de los metadatos
3.1.2 El caché de las consultas
3.1.3 La caché de los resultados
3.2 Configuración
4. La caché de anotaciones
5. Las sesiones
6. La extensión PHP para Twig
6.1 Instalación a través PEAR
6.2 Instalación desde las fuentes
7. Otras optimizaciones
7.1 Seleccionar su SAPI PHP
7.1.1 ¿ Qué es una SAPI ?
7.1.2 Módulo del servidor
7.1.3 CGI
7.1.4 FastCGI
7.1.5 Conclusión
7.2 Cacheado de OPCodes
7.2.1 Los OPCodes
7.2.2 Una etapa pesada
7.2.3 El cacheado
7.3 La compresión de las respuestas
7.3.1 Compresión gzip
7.3.2 Precompresión
7.4 Optimización de las imágenes
7.4.1 Validación
7.4.2 Expiración
7.4.3 Otras técnicas
7.5 Consejos de Google
8. Prueba del rendimiento de un sitio web
8.1 Del lado servidor
8.1.1 Apache Bench
8.1.2 Xhprof
8.2 Del lado cliente
Anexos
1. Desarrollar su proyecto Symfony en una máquina virtual
1.1 Introducción a la virtualización
1.2 Virtualización y desarrollo web
1.3 Instalación
1.3.1 Configuración
1.3.2 Utilización
2. Crear un comando para la consola
2.1 La configuración de un comando
2.2 Los objetos input y output
2.3 El Service Container
2.4 Consulta de ejemplo
3. Enviar correos electrónicos gracias a SwiftMailer
3.1 El protocolo SMTP
3.2 El transporte
3.2.1 El transporte smtp
3.2.2 El transporte sendmail
3.2.3 El transporte mail
3.2.4 Elegir su transporte
3.3 Envío de un correo electrónico
3.4 El spool de correos electrónicos
3.5 Durante el desarrollo
4. Gestionar sus usuarios con FOSUserBundle
4.1 Instalación
4.2 Visión general de las funcionalidades
4.3 Activación de las traducciones
4.4 Configuración
4.4.1 Creación de la clase de usuario
4.4.2 Configuración de la seguridad
4.4.3 Configuración del bundle
4.5 Importación de las rutas
4.6 Inscripción de los usuarios
4.6.1 Acceder al formulario de inscripción
4.6.2 Personalizar el formulario con un CAPTCHA
4.6.3 Envío de un correo electrónico de confirmación
4.7 Para ir más allá
5. Las traducciones
5.1 Introducción
5.1.1 La cultura (Local)
5.1.2 Internacionalización
5.1.3 Regionalización
5.2 Detectar la cultura de un usuario
5.2.1 Diferentes posibilidades
5.2.2 En la práctica
5.3 Dos principales casos de utilización de las traducciones
5.4 Activación de las traducciones
5.5 Rutas multi-idioma
5.6 JMSI18nRoutingBundle
5.6.1 Instalación
5.6.2 Configuración de la estrategia
5.6.3 Traducciones de las rutas
5.7 Los archivos de traducciones
5.7.1 Ubicación
5.7.2 Regla de nomenclatura
5.8 Traducción de un mensaje
5.8.1 El servicio translator
5.8.2 Los argumentos de sustitución (placeholders)
5.8.3 En las plantillas Twig
6. Trabajar con las sesiones
6.1 Introducción
6.2 Integración de las sesiones en Symfony
6.3 Configuración del administrador de copias de seguridad
6.3.1 Con PHP
6.3.2 Con Symfony
6.4 Los mensajes “flash”
7. Desplegar su aplicación
7.1 El despliegue
7.2 ¿ Hay que desplegar usando FTP ?
7.3 Las diferentes etapas
7.4 Capistrano y Capifony
7.4.1 Instalación
7.4.2 Configuración
7.4.3 Despliegue
7.5 Funcionalidades avanzadas
índice

 

2019 © Vuestros Libros Siglo XXI | Desarrollo Web Factor Ideas

Producto añadido al carrito.

Si desea ver la cesta de la compra haga click aquí.