(Capacitación para empresas)

Justificación:

El pasado año se realizó el primer estudio importante de tomadores de decisiones IT que mide el uso del lenguaje PHP para crear aplicaciones en grandes empresas.

Administrado por UBM TechWeb, líder mundial en tecnología de medios de negocios, el estudio se centra en cómo los directores ejecutivos y los tomadores de decisiones de las empresas están utilizando o tienen previsto utilizar PHP.

La encuesta revela que PHP se utiliza ampliamente para desarrollar y ejecutar diversas aplicaciones de negocio críticas.

Los motivos que impulsan esta creciente adopción de PHP son que logra ciclos de desarrollo más rápidos en comparación con otros lenguajes de programación, es conocido por gran variedad de profesionales, tiene una mayor eficiencia en el proceso de desarrollo de aplicaciones y facilidad de uso.

De los encuestados, el 97 por ciento de las organizaciones que están utilizando PHP plan de expandir su uso e iniciar proyectos adicionales de PHP en los próximos 12-18 meses.

Sobre Symfony2:

Symfony2 es uno de los Frameworks más flexibles que existen. Permite  adaptarlo y cambiarlo todo según las necesidades o gustos del programador. Symfony2 permite ese nivel de personalización porque sus desarrolladores conocen bien los patrones de diseño y las buenas prácticas procedentes del mundo Java.

Se han adaptado todas esas técnicas al mundo PHP y los resultados han sido increíbles.

Symfony2 cuenta con un micro-kernel altamente optimizado. El núcleo es la pieza central del framework y es el responsable de inicializar la configuración de la aplicación y arrancar (bootear) los bundles (paquetes, plugins).

Symfony2 está construido utilizando un contenedor de inyección de dependencias, inspirado en el framework Spring de Java.

En un proyecto, el desarrollador no interactúa directamente con el contenedor. Todos los detalles de implementación están ocultos detrás de un buen sistema de configuración que nos permite personalizar todo a través de archivos YAML o XML, o incluso a través de código PHP.

Destinatarios:

Ingenieros en Sistemas, Ingenieros electrónicos, gerentes de desarrollo, Analistas, Programadores, desarrolladores, diseñadores web. Se requieren conocimientos básicos de desarrollo de algoritmos.

Requisitos previos:

Es indispensable experiencia previa en programación, conocimientos de desarrollo web, PHP, Algoritmos, HTML, CSS, JavaScript, Bases de datos, POO.
Es deseable conocimientos de diseño de sistemas, UML, diseño orientado a objetos, análisis de sistemas.

Objetivos generales:

El curso está orientado que el alumno adquiera conocimientos teórico prácticos sobre el desarrollo de aplicaciones empresariales en internet, seguras escalables y fiables mediante el uso de Frameworks con tecnología PHP.

Finalizado este curso inicial el alumno estará en condiciones de:

  • Comprender los conceptos básicos inherentes al desarrollo de aplicaciones empresariales.
  • Utilizar uno los Frameworks más vanguardistas y completos para el desarrollo en PHP.
  • Modelar pequeños sistemas de manera estandarizada, y codificarlos.
  • Realizar sitios seguros de manera de evitar ataques.

Contenidos específicos:

Clase 1

  • Introducción al curso
  • PHP como lenguaje de programación formal
  • Novedades de las últimas versiones
  • Clases y objetos
  • Namespaces
  • Herencia
  • Visibilidad
  • Interfaces
  • Excepciones
  • Frameworks PHP, Estado del arte
  • Estándares de Interoperabilidad
  • Auto carga de clases

Clase 2

  • Introducción al Framework Symfony2
  • Requisitos de sistema
  • Instalación de la edición estándar
  • Arquitectura de Proyectos en Symfony2
  • Procesamiento de una petición HTTP con Sf2
  • Estándares incorporados a Symfony2
  • Convenciones de codificación
  • Herramientas de desarrollo integradas

Clase 3

  • Barra de depuración web
  • Depuración de código
  • Análisis de la Información proporcionada
  • Trazas de Excepciones
  • Opciones de configuración de la aplicación
  • Formatos soportados: XML, YAML, PHP
  • Configuración global de la aplicación
  • Configuración específica de cada bundle
  • Routing, Bundles y Controllers

Clase 4

  • Uso de Plantillas en aplicaciones MVC
  • Motor de Plantillas Twig
  • Twig en comparación con PHP
  • Herencia de Plantillas
  • Plantillas compuestas
  • View Helpers
  • Twig Extensions

Clase 5

  • Concepto: Modelo de Dominio
  • Analizando el negocio del cliente
  • UML como herramienta de comunicación
  • Entidades en el Modelo de Dominio
  • Definiendo el Modelo de Dominio
  • Persistencia de Datos

Clase 6

  • Doctrine2 ORM integrado
  • El patrón Data Mapper
  • Mapeo del Modelo en Doctrine2
  • En Entity Manager y los Repositorios
  • El lenguaje DQL
  • Herramientas de desarrollo integradas

Clase 7

  • Formularios en Symfony2
  • Creación y procesamiento de Forms
  • Validadores en Symfony2
  • Aplicando reglas de Validación en los campos
  • Obteniendo la información validada
  • Integración entre Forms y Doctrine2
  • Inferencia de Tipos y Validadores

Clase 8

  • Componentes para Seguridad en Symfony2
  • Restringiendo el acceso a la aplicación
  • Principios de Autenticación y Autorización
  • Autenticación con Formularios Web
  • Creación de una Políticas de seguridad con ACLs
  • Prueba de los derechos de acceso de los usuarios.

Clase 9

  • Seguridad en aplicaciones web
  • Distintos tipos de vectores de ataque
  • Mitigación en Symfony2
  • Protegiendo la aplicación contra XSS
  • Protegiendo la aplicación contra CSRF
  • Protegiendo la aplicacion contra SQL Injection

Clase 10

  • Vistazo rápido de los componentes no estudiados
  • Enumeración de temas más avanzados
  • Symfony2 en entornos productivos
  • Perfil esperado de un Profesional en PHP
  • Recursos de estudio adicionales
  • Cierre de la cursada, evaluación de avances