SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
Symfony 2
http://blogs.prod.uci.cu/echo
Elementos sobre la versión estable Symfony 2.1
Yaismel Miranda Pons
¿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
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
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
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
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/
Integración con Composer
¿Qué es
composer?
«Gestor de dependencias para
PHP»
Integración con Composer
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
¿Es posible usar Composer
en la UCI?
Composer en la UCI
Integración con Composer
Estructura de directorios
Integración con Composer
composer.json
Integración con Composer
composer.lock
Integración con Composer
autoload_namespaces.php
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.
Funciones PHP utilizadas
Funciones PHP más utilizadas:
en Symfony 2 en Symfony 1
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.
¿Sabías que es posible
desarrollar con Javascript en
el lado del servidor?
Tema sorpresa
¿Qué es
nodeJS?
«Node.js es un entorno de programación en
la capa del servidor basado en el lenguaje
de programación Javascript»
Ryan Dahl
Creador y responsable del
proyecto NodeJS.
2009
libevent
EventMachine
Ruby
Python
C
Trabaja en la empresa
Joyent.
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
Incorpora varios módulos básicos entre ellos:
Net Path
FileSystem BufferTimers
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
I/O necesita ser realizada de una forma diferente
Principio de funcionamiento
Muchas aplicaciones web tienen un código similar al
siguiente:
Principio de funcionamiento
En la mayoría de los casos, solo
está esperando por la respuesta.
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:
¿Eso es lo mejor que se puede hacer?
Principio de funcionamiento
Démosle un vistazo a:
y
vs
La diferencia:
Apache usa un hilo por conexión.
Nginx no usa hilos, usa un ciclo
de eventos.
Un código como este:
Puede bloquear el proceso de ejecución entero o
implicar múltiples pilas de ejecución.
Principio de funcionamiento
Sin embargo, un código como este:
Permite que el programa pueda retornar al ciclo de
eventos de forma inmediata.
Principio de funcionamiento
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.
Symfony 2
http://blogs.prod.uci.cu/echo
Elementos sobre la versión estable Symfony 2.1
Yaismel Miranda Pons
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

Más contenido relacionado

La actualidad más candente

Generando script malicioso con metasploit framework
Generando script malicioso con metasploit frameworkGenerando script malicioso con metasploit framework
Generando script malicioso con metasploit frameworkAlejandro Cárdenas Monge
 
Gestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsGestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsBEEVA_es
 
Frameworks de php
Frameworks de phpFrameworks de php
Frameworks de phpPipe Muñoz
 
lección 02- creación de Virtual Host laravel 5 + Xampp + Windows
lección 02- creación de Virtual Host laravel 5 + Xampp + Windowslección 02- creación de Virtual Host laravel 5 + Xampp + Windows
lección 02- creación de Virtual Host laravel 5 + Xampp + WindowsJairo Hoyos
 
Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.Ángel Acaymo M. G.
 
Tuenti release process
Tuenti release processTuenti release process
Tuenti release processTuenti
 
Symfony: construyendo aplicaciones web
Symfony: construyendo aplicaciones webSymfony: construyendo aplicaciones web
Symfony: construyendo aplicaciones websergiovier
 
Resumen capitulo5
Resumen capitulo5Resumen capitulo5
Resumen capitulo5gavagarcia
 
Miguel Balparda - Haciendo su vida más fácil con Magento 2 y la terminal
Miguel Balparda - Haciendo su vida más fácil con Magento 2 y la terminalMiguel Balparda - Haciendo su vida más fácil con Magento 2 y la terminal
Miguel Balparda - Haciendo su vida más fácil con Magento 2 y la terminalMage Titans ES
 
¿Cúal es el mejor navegador web? ¿y el más utilizado?
¿Cúal es el mejor navegador web? ¿y el más utilizado?¿Cúal es el mejor navegador web? ¿y el más utilizado?
¿Cúal es el mejor navegador web? ¿y el más utilizado?knhas
 

La actualidad más candente (20)

Generando script malicioso con metasploit framework
Generando script malicioso con metasploit frameworkGenerando script malicioso con metasploit framework
Generando script malicioso con metasploit framework
 
Gestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsGestión del software con Maven y Jenkins
Gestión del software con Maven y Jenkins
 
Laravel 4.2 pdf
Laravel 4.2 pdfLaravel 4.2 pdf
Laravel 4.2 pdf
 
Frameworks de php
Frameworks de phpFrameworks de php
Frameworks de php
 
lección 02- creación de Virtual Host laravel 5 + Xampp + Windows
lección 02- creación de Virtual Host laravel 5 + Xampp + Windowslección 02- creación de Virtual Host laravel 5 + Xampp + Windows
lección 02- creación de Virtual Host laravel 5 + Xampp + Windows
 
Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.
 
Tuenti release process
Tuenti release processTuenti release process
Tuenti release process
 
Turbogears
TurbogearsTurbogears
Turbogears
 
Symfony: construyendo aplicaciones web
Symfony: construyendo aplicaciones webSymfony: construyendo aplicaciones web
Symfony: construyendo aplicaciones web
 
Nesuss sebastianm98
Nesuss sebastianm98Nesuss sebastianm98
Nesuss sebastianm98
 
Migrando data - DRUPAL
Migrando data - DRUPALMigrando data - DRUPAL
Migrando data - DRUPAL
 
Selenium
SeleniumSelenium
Selenium
 
Redes
RedesRedes
Redes
 
Resumen capitulo5
Resumen capitulo5Resumen capitulo5
Resumen capitulo5
 
Integrando sonar
Integrando sonarIntegrando sonar
Integrando sonar
 
Miguel Balparda - Haciendo su vida más fácil con Magento 2 y la terminal
Miguel Balparda - Haciendo su vida más fácil con Magento 2 y la terminalMiguel Balparda - Haciendo su vida más fácil con Magento 2 y la terminal
Miguel Balparda - Haciendo su vida más fácil con Magento 2 y la terminal
 
Phishing
PhishingPhishing
Phishing
 
¿Cúal es el mejor navegador web? ¿y el más utilizado?
¿Cúal es el mejor navegador web? ¿y el más utilizado?¿Cúal es el mejor navegador web? ¿y el más utilizado?
¿Cúal es el mejor navegador web? ¿y el más utilizado?
 
Curso Vagrant
Curso VagrantCurso Vagrant
Curso Vagrant
 
Framework
FrameworkFramework
Framework
 

Destacado (8)

PHP. Bases de Datos
PHP. Bases de DatosPHP. Bases de Datos
PHP. Bases de Datos
 
Php 101: PDO
Php 101: PDOPhp 101: PDO
Php 101: PDO
 
Introducción a PHP5
Introducción a PHP5Introducción a PHP5
Introducción a PHP5
 
Iniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQLIniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQL
 
Vida de Mahatma Gandhi
Vida de Mahatma GandhiVida de Mahatma Gandhi
Vida de Mahatma Gandhi
 
Presentación gandhi
Presentación gandhiPresentación gandhi
Presentación gandhi
 
Gandhi
GandhiGandhi
Gandhi
 
Gandhi para niños
Gandhi para niñosGandhi para niños
Gandhi para niños
 

Similar a Symfony 2.1

Similar a Symfony 2.1 (20)

CRUD básico con Symfony
CRUD básico con SymfonyCRUD básico con Symfony
CRUD básico con Symfony
 
Php programmers
Php programmersPhp programmers
Php programmers
 
Php programating
Php programatingPhp programating
Php programating
 
CodeIgniter
CodeIgniterCodeIgniter
CodeIgniter
 
Programacion php con symfony
Programacion php con symfonyProgramacion php con symfony
Programacion php con symfony
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
 
Zend Framework Taller de SeeD Software, Colombia
Zend Framework Taller de SeeD Software, ColombiaZend Framework Taller de SeeD Software, Colombia
Zend Framework Taller de SeeD Software, Colombia
 
Composer & SemVer
Composer & SemVerComposer & SemVer
Composer & SemVer
 
Introducción a Symfony
Introducción a Symfony Introducción a Symfony
Introducción a Symfony
 
Java 2010: presente, límites y futuro
Java 2010: presente, límites y futuroJava 2010: presente, límites y futuro
Java 2010: presente, límites y futuro
 
PHP Con symfony
PHP Con symfonyPHP Con symfony
PHP Con symfony
 
Practica09
Practica09Practica09
Practica09
 
Symfony Parte 2
Symfony Parte 2Symfony Parte 2
Symfony Parte 2
 
Introducción a ASPNET vNext
Introducción a ASPNET vNextIntroducción a ASPNET vNext
Introducción a ASPNET vNext
 
Spring roo
Spring rooSpring roo
Spring roo
 
Symfony2: Optimización y rendimiento
Symfony2: Optimización y rendimientoSymfony2: Optimización y rendimiento
Symfony2: Optimización y rendimiento
 
PHP Unit y TDD
PHP Unit y TDDPHP Unit y TDD
PHP Unit y TDD
 
Republica bolivariana de venezuela 2
Republica bolivariana de venezuela 2Republica bolivariana de venezuela 2
Republica bolivariana de venezuela 2
 
Symfony
SymfonySymfony
Symfony
 
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5
 

Symfony 2.1