Silex. Microframework y camino fácil de aprender Symfony. PHP Tutorial Screencasts



Documentos relacionados
Capa de Aplicación (Parte 2 de 2)

HTTP Introducción. Redes de Datos Ing. Marcelo Utard / Ing. Pablo Ronco FACULTAD DE INGENIERIA UNIVERSIDAD DE BUENOS AIRES

HyperText Transfer Protocol

Clase 4. Ajax XML. XML Ajax definición Breve explicación de como funciona el HTTP XMLHttpRequest. El XML se creó para que cumpliera varios objetivos.

La web (el servicio WWW)

GUÍA PARA LA INSTALACIÓN Y USO DE WORDPRESS BY MASTERHACKS. Guía de instalación y uso de Wordpress Página 1


Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

INTERCAMBIO DE OBJETOS

Quiz 11: Crear preguntas. Juan Quemada, DIT - UPM

Desarrollo y servicios web

HyperText Transfer Protocol

Conectar a unidad de red

*La Macromedia Dreamweaver

Desarrollo Web con PHP

Formas de llevar a cabo un backup de una base de datos MySQL

Desarrollo y servicios web

Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia

El servidor WEB Apache HTTPD. Tecnologías Web

Como montar un servidor web + Anonimización con Tor

MANUAL DE INSTALACIÓN Y CONFIGURACIÓN

INSTALACIÓN DE JOOMLA EN UN SERVIDOR LOCAL

Manual Desarrollador Externo

Curso de Drupal Básico

WEB Y HTTP. HTTP: Hypertext Transfer Protocol [RFC 1945] [RFC 2616] Web Page URL (Uniform/Universal Resource Identifier)

Detectar y solucionar infecciones en un sitio web

Ficheros de configuración de Nagios (ejemplo con nrpe y snmp)

DIOS ES NUESTRO PADRE BUENO (A.3.1.1)

INTRODUCCIÓN A PHP. Javier Enciso

Cómo crear un libro en Moodle?

Testing y Drupal. Rosa María Orellana Maldoando

Servidor Apache. Instalación Configuración Apache con Webmin 24/03/2014. Vicente

COMO INSTALAR ECLIPSE PDT Y XDEBUG EN WINDOWS QUE NECESITA: SE ASUME LO SIGUIENTE: COMO INSTALAR ECLIPSE PDT

Novedades en Drupal 8. Los nuevos retos (versión de la presentación 0.1)

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Hostaliawhitepapers. Redirección 301. Cardenal Gardoki, BILBAO (Vizcaya) Teléfono:

Creación y administración de grupos locales

Instalación Joomla. Instrucciones para instalar Joomla en un pc en la red local del instituto, o en un servidor en Internet

SERVIDOR WEB. Servidores web IIS (Windows) / Apache (Windows y Linux)

INTRODUCCIÓN A LA PROGRAMACIÓN WEB UNIDAD. Estructura de contenidos: cisvirtual@ucv.edu.pe. 1.

Manual de instalación del Programa. Para WINDOWS

Capitulo VI. Conclusiones.

SUBIR ARCHIVOS CON FTP. TRABAJAR EN UN SERVIDOR REMOTO. CREAR UNA PÁGINA WEB CON PROGRAMACIÓN PHP. (CU00814B)

Instalación de Casandra Para instalar cassandra se recomienda tener la última versión de JAVA instalada.

Cómo instalar el software de CRM Personas en un alojamiento web remoto

Estrategia de Liberacion for dummies por Carlos Estévez. Muchos de estos documentos son los: Pedidos de Compras, Solicitudes de Pedido, Ofertas, etc.

PREPARANDO EL ENTORNO DE DESARROLLO PARA PROGRAMAR EN PHP. DESCARGAR E INSTALAR NOTEPAD++ (CU00808B)

5. Crea un sitio Web seguro usando tu propio certificado digital (Windows y Linux).

MAGALLANES. deployment tool

QUÉ HAY DE NUEVO EN DRUPAL 8. Carla Briceno Jared Smith

WINDOWS 2003 SERVER DIRECTORIO ACTIVO Y DNS

Administración de portales Joomla (III)

DESARROLLA TU BLOG O PÁGINA

Desarrollo de módulos con Drupal 6

Clase 22 Nivel de Aplicación WWW Tema 6.- Nivel de aplicación en Internet

PRACTICA 9 SERVIDOR WEB APACHE SERVIDOR WEB APACHE. JEAN CARLOS FAMILIA Página 1

IDENTIFICACIÓN DE LA ACTIVIDAD PEDAGÓGICA

HUMBERTO SANLÉS DOMÍNGUEZ ASI-1 DOMINIOS EN WINDOWS

MANUAL COPIAS DE SEGURIDAD

COB Versión 1.20 Manual del usuario

Internet Information Server

Crear un servidor Web en IIS

INSTALACION DE UN SERVIDOR LOCAL CON EasyPHP

Descuartiza un módulo de Magento

Servidor Web-Firewall Proxy DHCP

Manual de Instalación Factel5 Para Windows Vista y Windows 7 De 32 bits

3. Qué necesitamos para usar Wordpress?

Instalación de ActivePerl en MS Windows

Taller de Sistemas de Información 1. Desarrollo web

qwertyuiopasdfghjklzxcvbnmqwertyuio pasdfghjklzxcvbnmqwertyuiopasdfghjk lzxcvbnmqwertyuiopasdfghjklzxcvbnm qwertyuiopasdfghjklzxcvbnmqwertyuio

MANUAL DE INSTALACIÓN DE HERRAMIENTAS DE DESARROLLO. Sistema de Control de Producción SICPROD V1.0

Ataques Web Automáticos: Identificación, Engaño y Contraataque

INSTALACIÓ N A3ERP. Informática para empresas INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra.

Diseño e implementación de un sistema de seguridad perimetral ZENTYAL. Henry Alexander Peñaranda Mora cod Byron Falla cod

SUBIR LAS ACTIVIDADES DE HOTPOTATOES A UN SITIO WEB

CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa

Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro

Manual de NetBeans y XAMPP

Configuración del cliente POP de correo electrónico de la Universidad de Sevilla

Tutorial: Cómo realizar tu primer programa en C++ En el Sistema Operativo Windows

2.3 Cómo crear un blog paso a paso

Modo básico de funcionamiento del módulo Velneo vmodapache V7

Manual de uso de la página Web en la zona restringida

Practica A. Crear y Administrar Grupos

Comenzando con Pentaho

SERVICIO NACIONAL DE APRENDIZAJE SENA CENTRO DE SERVICIO Y GESTION EMPRESARIAL CESGE RECUPERACION APRENDIZ BRENDA MARCELA TOVAR TORRES

Manual para el uso de vgraph_component

SISTEMA DE SEGURIDAD 2FA PARA WINDOWS 8.

TUTORIAL PRÁCTICO DE BASES DE DATOS EN ACCESS CREAR UNA AGENDA

Transcripción:

Silex Microframework y camino fácil de aprender Symfony PHP Tutorial Screencasts

Buenos Dias! Lead contributor to the Symfony documentation!! KnpLabs US - Symfony consulting, training, Kumbaya!!! Writer for KnpUniversity.com! screencasts! Husband of the much more talented @leannapelham PHP Tutorial Screencasts knplabs.com github.com/weaverryan

Querétaro Viví en Querétaro en 2003 para cuatro meses Hablé casi 5 palabras en español. Este gringo estaba *sorprendido* por el costumbre de besar para saludar a las mujeres PHP Tutorial Screencasts knplabs.com github.com/weaverryan

Capítulo 1! La anatomía de cualquier web framework

@weaverryan

Una aplicación compleja que nos @weaverryan da saludos!

Configure Apache

O usen al web server nativo de PHP! php -S localhost:8000 @weaverryan

*Se puede usar este web server para Drupal también

Request -> Response Framework Request: GET /hello/drupalmx Routing: determina una función que puede crear esta página (el controller) El Controller: nuestro código: construye la pagina Response: @weaverryan Hello drupalmx!

Una ruta que coincide cuando el URI es @weaverryan /hello/*

Si el URI coincide la ruta, Silex ejecuta esta función (el controller) @weaverryan

El valor de {name} se pasa como argumento al controller @weaverryan

Construimos la pagina y celebrar! @weaverryan

Request -> Response Framework Request: GET /hello/drupalmx Routing: determina una función que puede crear esta página (el controller) El Controller: nuestro código: construye la pagina Response: @weaverryan Hello drupalmx!

Capítulo 2 Request-Response!

Nuestro Trabajo: Entender el request y crear un response @weaverryan

El Request GET /hello/drupalmx?page=5 HTTP/1.1! Host: localhost:8000! Connection: keep-alive! Cache-Control: max-age=0! Accept: text/html,application/xhtml+xml! User-Agent: Mozilla/5.0! Cookie: PHPSESSID=abcdefg; has_js=1; El cliente nos da un mensaje sencillo que describe qué quiere @weaverryan

El método HTTP El Request GET /hello/drupalmx?page=5 HTTP/1.1! Host: localhost:8000! El URI Connection: keep-alive! Cache-Control: max-age=0! Accept: text/html,application/xhtml+xml! User-Agent: Mozilla/5.0! Cookie: PHPSESSID=abcdefg; has_js=1; El cliente nos da un mensaje sencillo que describe qué quiere @weaverryan

Los Request headers El Request GET /hello/drupalmx?page=5 HTTP/1.1! Host: localhost:8000! Connection: keep-alive! Cache-Control: max-age=0! Accept: text/html,application/xhtml+xml! User-Agent: Mozilla/5.0! Cookie: PHPSESSID=abcdefg; has_js=1; El cliente nos da un mensaje sencillo que describe qué quiere @weaverryan

El Response HTTP/1.1 200 OK! Host: localhost:8000! Cache-Control: no-cache! Date: Wed, 23 Apr 2014 16:25:03 GMT! Content-Type: text/html;!! Hello drupalmx @weaverryan

El Response El código del response HTTP/1.1 200 OK! Los Response headers Host: localhost:8000! Cache-Control: no-cache! Date: Wed, 23 Apr 2014 16:25:03 GMT! Content-Type: text/html;!! <h1>hello drupalmx</h1> @weaverryan El cuerpo

En PHP, el request mensaje se deconstruye a los superglobals @weaverryan

Para crear el response, usamos header y echo content @weaverryan

@weaverryan El Request en Silex

@weaverryan El Response en Silex

Capítulo 3 Namespaces & Autoloading! https://www.flickr.com/photos/chrisjeriko/8599248142

El controller puede ser cualquier función

Controller como método en clase @weaverryan

Controller como método en clase @weaverryan

PHP Namespaces Namespaces nos da nombres max largos nombre: Drupal\acme\Controller\DemoController @weaverryan

@weaverryan PHP Namespaces

Autoloading No se necesita usar require/include si:! A. El namespace es igual al directorio! B. La clase es igual al nombre de archivo (+.php) Se llama PSR-0 @weaverryan

Capítulo 4:! Servicios y el container

@weaverryan Servicios: Objetos útiles

El container: el objeto que contiene todos los servicios @weaverryan

En Silex, Symfony y Drupal 8, existe un container. Si lo tienes, puede usar los! servicios (objetos útiles)

Podemos usar el servicio de Twig para render un template?

El servicio twig El container in Silex @weaverryan

Request -> Response Framework Request: GET /hello/drupalmx Routing: determina una función que puede crear esta página (el controller) El Controller: Container (con servicios) nuestro código: construye la pagina Response: @weaverryan Hello drupalmx!

Capítulo 5:! Eventos https://www.flickr.com/photos/bmp_creep/8064779382

Como Drupal hooks, Silex tiene eventos @weaverryan

Puede decir a Silex: Por favor, cuando ocurra el evento XXXXX, ejecute esa función @weaverryan

Request -> Response Framework Request: Evento: kernel.request GET /hello/drupalmx Routing: determina una función que puede crear esta página (el controller) Evento: kernel.controller El Controller: Container (con servicios) nuestro código: construye la pagina Eventos: kernel.view kernel.response @weaverryan Response: Hello drupalmx!

@weaverryan

@weaverryan

Capítulo 6:! El Profiler https://www.flickr.com/photos/fukagawa/415772853

Silex (por Symfony) tiene un profiler @weaverryan

@weaverryan

Contiene muchísimo información, incluyendo el timeline @weaverryan

@weaverryan

1) kernel.request evento 2) Routing 3) Ejecuta el controller 4) Nuestro listener en kernel.view

Capítulo 7: Todo lo mismo en Drupal 8!

Cómo podemos crear esto en Drupal 8?

Gracias a mi amigo Jesus Olivas por ya tener blog posts muy buenos @jmolivas jmolivas.com

http://bit.ly/d8-hello

1) Crear un module acme @jmolivas http://bit.ly/d8-hello

2) Crear routing Nombre del controller @jmolivas http://bit.ly/d8-hello

3) Crear el controller @jmolivas http://bit.ly/d8-hello

Module, Routing, Controller @jmolivas http://bit.ly/d8-hello

@weaverryan

Tiene Drupal 8 un container con servicios?

@weaverryan El Container

Donde se debe encuentra el container puede cambiar antes del fin de Drpual 8 @weaverryan

Pero sí hay un container Y sí continue todos los objetos útiles (servicios) de Drupal! @weaverryan

Hay eventos como Silex?

Sí! Existen los mismos eventos y más @weaverryan

1) Crear una clase listener

Se ejecuta al fin del request! Añadimos JavaScript a cada pagina en el sitio

2) Añadir un nuevo servicio al container

Ahora, el container tiene un servicio que se llama acme.view_subscriber @weaverryan El event_subscriber tag dice al Drupal que este servicio quiere ser un listener para algunos eventos

@weaverryan

Y existe el profiler?

@weaverryan https://drupal.org/project/webprofiler

@weaverryan https://drupal.org/project/webprofiler

@weaverryan https://drupal.org/project/webprofiler

@weaverryan https://drupal.org/project/webprofiler

@weaverryan https://drupal.org/project/webprofiler

@weaverryan https://drupal.org/project/webprofiler

Capítulo 8!, y!

Temas Principales!! Request/Response Routing/Controller PHP Namespaces/Autoloading! Services/Container Events/Listeners Profiler Todos son iguales en Silex, Drupal y Symfony @weaverryan

Se puede usar Silex para aprender Drupal

Se puede usar Silex para aprender Symfony

Se puede usar Symfony para aprender Drupal

Al fin, tienen mas herramientas para cualquier problema

Gracias! Ryan Weaver @weaverryan PHP Tutorial Screencasts

@weaveryan @KnpUniversity