elementos sobre symfony 2.1
TRANSCRIPT
![Page 1: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/1.jpg)
Symfony 2
http://blogs.prod.uci.cu/echo
Elementos sobre la versión estable Symfony 2.1
Yaismel Miranda Pons
![Page 2: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/2.jpg)
¿Sobre qué estaremos hablando?
Resumen del trabajo realizado
1
Integración con Composer
2
Funciones PHP
3
Tema sorpresa
4
5
Información sobre el lanzamiento
![Page 3: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/3.jpg)
Información sobre el lanzamiento
Fue publicado apenas unas horas del lanzamiento de
ZendFramework 2
Mejora en casi todos los aspectos del framework.
…Symfony 2.1 el lanzamiento más esperado del año…
- Los cambios más notables están en los formularios.
Ver detalles en:
https://github.com/symfony/symfony/blob/master/UPGRADE-2.1.md
ó
MyProject/vendor/symfony/symfony/UPGRADE-2.1.md
![Page 4: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/4.jpg)
Resumen del trabajo realizado
Desde la versión anterior (desde github):
- más de 3.500 commits
- más de 1.100 pull requests recibidas de
cientos de programadores
![Page 5: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/5.jpg)
Resumen del trabajo realizado
Desde la versión anterior:
- más de 6.000 tests unitarios
Por cierto ya está disponible la versión 3.7 de
PHPUnit.
Esta incluye varias aserciones útiles para aplicaciones que
tratan información en formato JSON.
assertJsonFileEqualsJsonFile
![Page 6: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/6.jpg)
Resumen del trabajo realizado
Desde la versión anterior:
- más de 3.000 líneas de documentación
modificadas
Por cierto se estrena la nueva sección
de documentación sobre Symfony
gracias a Javier Eguíluz en:
http://www.symfony.es/documentacion/
![Page 7: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/7.jpg)
![Page 8: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/8.jpg)
Integración con Composer
¿Qué es
composer?
«Gestor de dependencias para
PHP»
![Page 9: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/9.jpg)
Integración con Composer
![Page 10: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/10.jpg)
Integración con Composer
Más información en nuestro FTP:
ftp://ftp.prod.uci.cu/PHP/Documentacion/Symfony2/Desymfony/2012/
composer-gestor-dependencias-php.pdf
![Page 11: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/11.jpg)
¿Es posible usar Composer
en la UCI?
![Page 12: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/12.jpg)
Composer en la UCI
![Page 13: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/13.jpg)
Integración con Composer
Estructura de directorios
![Page 14: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/14.jpg)
Integración con Composer
composer.json
![Page 15: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/15.jpg)
Integración con Composer
composer.lock
![Page 16: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/16.jpg)
Integración con Composer
autoload_namespaces.php
![Page 17: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/17.jpg)
Funciones PHP utilizadas
En la versión PHP 5.3 de mi PC en el proyecto, el lenguaje PHP
tiene 1771 funciones definidas.
El código de Symfony2 utiliza alrededor de 467 funciones de
PHP diferentes.
usadas
sin usar
El código de Symfony 2.1 no utiliza el 73%
de las funciones de PHP.
![Page 18: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/18.jpg)
Funciones PHP utilizadas
Funciones PHP más utilizadas:
en Symfony 2 en Symfony 1
![Page 19: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/19.jpg)
Funciones PHP utilizadas
El uso de las funciones nativas de PHP es mucho mayor
en Symfony 2 comparado con Symfony 1.
Así que no reinventes la rueda y no programes algo
que puedes resolver con una sencilla función PHP.
Cuando se utiliza un framework que abstrae todas las partes del
desarrollo de la aplicación como:
es fácil olvidar que todo el código corre sobre PHP.
![Page 20: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/20.jpg)
¿Sabías que es posible
desarrollar con Javascript en
el lado del servidor?
Tema sorpresa
![Page 21: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/21.jpg)
![Page 22: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/22.jpg)
¿Qué es
nodeJS?
![Page 23: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/23.jpg)
«Node.js es un entorno de programación en
la capa del servidor basado en el lenguaje
de programación Javascript»
![Page 24: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/24.jpg)
Ryan Dahl
Creador y responsable del
proyecto NodeJS.
2009
libevent
EventMachine
Ruby
Python
C
Trabaja en la empresa
Joyent.
![Page 25: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/25.jpg)
I/O de datos en una arquitectura orientada a eventos.
Basado en el motor Javascript V8 de Google Chrome.
Sistema de módulos basados en CommonJS.
Incluye un entorno REPL para depuración interactiva.
Cuenta con gestor de dependencias formidable (npm).
Características
![Page 26: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/26.jpg)
Incorpora varios módulos básicos entre ellos:
Net Path
FileSystem Buffer Timers
Stream
Es posible utilizar módulos desarrollados por terceros, ya sea como
archivos ".node" precompilados, o como archivos en javascript plano.
Connect Express
Socket-io
Módulos
ZeroMQ
![Page 27: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/27.jpg)
I/O necesita ser realizada de una forma diferente
Principio de funcionamiento
Muchas aplicaciones web tienen un código similar al
siguiente:
![Page 28: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/28.jpg)
Principio de funcionamiento
En la mayoría de los casos, solo
está esperando por la respuesta.
![Page 29: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/29.jpg)
Principio de funcionamiento
Un mejor software puede realizar
múltiples tareas.
Otros hilos de ejecución pueden
ejecutarse mientras se espera la
respuesta.
…Uds. como chicos inteligentes pensarán:
![Page 30: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/30.jpg)
¿Eso es lo mejor que se puede hacer?
Principio de funcionamiento
Démosle un vistazo a:
y
![Page 31: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/31.jpg)
![Page 32: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/32.jpg)
![Page 33: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/33.jpg)
vs
La diferencia:
Apache usa un hilo por conexión.
Nginx no usa hilos, usa un ciclo
de eventos.
![Page 34: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/34.jpg)
Un código como este:
Puede bloquear el proceso de ejecución entero o
implicar múltiples pilas de ejecución.
Principio de funcionamiento
![Page 35: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/35.jpg)
Sin embargo, un código como este:
Permite que el programa pueda retornar al ciclo de
eventos de forma inmediata.
Principio de funcionamiento
![Page 36: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/36.jpg)
Principio de funcionamiento
Javascript está diseñado específicamente para ser
usado con ciclo de eventos.
- Funciones anónimas.
- Solo una devolución de llamada (callback) a la vez.
- I/O mediante callbacks de eventos del DOM.
![Page 37: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/37.jpg)
![Page 38: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/38.jpg)
Symfony 2
http://blogs.prod.uci.cu/echo
Elementos sobre la versión estable Symfony 2.1
Yaismel Miranda Pons
![Page 39: Elementos sobre Symfony 2.1](https://reader033.vdocuments.mx/reader033/viewer/2022050721/55c0862bbb61eb122d8b47c6/html5/thumbnails/39.jpg)
Recursos
https://github.com/symfony/symfony/blob/master/UPGRADE-2.1.md
http://nodejs.org/http://www.bloghumor.com.ar/2010_12_01_archive.html
http://palosalviento.blogspot.com/2010/11/por-que-salimos-mal-en-matematicas.html
http://nodejs.org
http://es.wikipedia.org/wiki/Nodejs
http://nginx.org