symfony 2 - decharlas 2010
Post on 19-Oct-2014
7.074 views
DESCRIPTION
Javier Eguiluz cerró las primeras jornadas symfony en Castellón habladonos del futuro Symfony2TRANSCRIPT
![Page 1: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/1.jpg)
organizan patrocinan
colaboran
Jornadas Symfony 5 y 6 de julio 2010Universitat Jaume I, Castellón
http://decharlas.uji.es/symfony
![Page 2: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/2.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
NOTAEsta presentación es la versión simplificada de la que se utilizó en las primeras Jornadas Symfony.
La presentación original está llena de efectos gráficos y animaciones imposibles de utilizar en slideshare.net
Puedes ver la grabación en vídeo de la presentación original en http://bit.ly/symfony2
![Page 3: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/3.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
NOTEThis is the simplified version of the presentation used at the first Spanish Symfony Conference.
The original presentation includes lots of cool effects and animations that cannot be exported to slideshare.net
You can watch the video recording of the original presentation at http://bit.ly/symfony2
![Page 4: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/4.jpg)
Symfony 2Javier Eguíluz, symfony.es
Jornadas Symfony 5 y 6 de julio 2010Universitat Jaume I, Castellón
http://decharlas.uji.es/symfony
![Page 5: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/5.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
sesión patrocinada por
www.ideatea.com
![Page 6: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/6.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
¿Qué es Symfony 2?
![Page 7: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/7.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
ymfonys
![Page 8: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/8.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
2S ymfony
![Page 9: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/9.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
¿En qué se diferencian sf 1 y sf2?
![Page 10: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/10.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
todoen
![Page 11: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/11.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
todoen casi
![Page 12: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/12.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
La evolución de Symfony
![Page 13: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/13.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
symfony
2007sf 1.0
![Page 14: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/14.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
symfony
sfRequest sfRouting sfLogger sfI18N sfUser
sfResponse sfYAML sfDatabase sfForm sfStorage
sfCache sfWidget sfValidator sfEventDispatcher
sfOutputEscaper
sfCoreAutoload
2008sf 1.2
![Page 15: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/15.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
symfony
2009sf 1.4
![Page 16: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/16.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
¿Por qué reescribirlo todo de nuevo?
![Page 17: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/17.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Muchos archivosConfiguraciónDifícil de aprenderFormulariosL E N T O
Problemas
: )
![Page 18: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/18.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Nuestro primer proyecto Symfony2
![Page 19: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/19.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
5.3.2 subversion
![Page 20: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/20.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
> git clone
http://github.com/symfony/
symfony-sandbox.git
![Page 21: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/21.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
2.x
1.x
symfony 1.4sandbox
8.5 MB
3.919 archivos
3 MB
2.244 archivosSymfony2
sandbox
![Page 22: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/22.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Demo
![Page 23: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/23.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
> php hello/console -s
> init:app frontend
frontend/
web/
--yaml
> init:bundle Application/
FrontendBundle
![Page 24: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/24.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
El código fuente
![Page 25: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/25.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
1.x 2.x<?php
class Filesystem{ public function mkdirs($path, $mode = 0777) { if (is_dir($path)) { return true; }
return @mkdir($path, $mode, true); }
public function touch($files) { if (!is_array($files)) { $files = array($files); }
foreach ($files as $file) { touch($file); } }
<?php
class sfFilesystem{
public function mkdirs($path, $mode = 0777) { if (is_dir($path)) { return true; }
return @mkdir($path, $mode, true); }
public function touch($files) { if (!is_array($files)) { $files = array($files); }
foreach ($files as $file) { touch($file); } }
![Page 26: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/26.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
1.x 2.x<?php
class Filesystem{ public function mkdirs($path, $mode = 0777) { if (is_dir($path)) { return true; }
return @mkdir($path, $mode, true); }
public function touch($files) { if (!is_array($files)) { $files = array($files); }
foreach ($files as $file) { touch($file); } }
<?php
class sfFilesystem{
public function mkdirs($path, $mode = 0777) { if (is_dir($path)) { return true; }
return @mkdir($path, $mode, true); }
public function touch($files) { if (!is_array($files)) { $files = array($files); }
foreach ($files as $file) { touch($file); } }
Zend / PEAR
![Page 27: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/27.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
1.x 2.x<?php
class Filesystem{ public function mkdirs($path, $mode = 0777) { if (is_dir($path)) { return true; }
return @mkdir($path, $mode, true); }
public function touch($files) { if (!is_array($files)) { $files = array($files); }
foreach ($files as $file) { touch($file); } }
<?php
class sfFilesystem{
public function mkdirs($path, $mode = 0777) { if (is_dir($path)) { return true; }
return @mkdir($path, $mode, true); }
public function touch($files) { if (!is_array($files)) { $files = array($files); }
foreach ($files as $file) { touch($file); } }
2 espacios 4 espacios
![Page 28: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/28.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
1.x 2.x<?php
class Filesystem{ public function mkdirs($path, $mode = 0777) { if (is_dir($path)) { return true; }
return @mkdir($path, $mode, true); }
public function touch($files) { if (!is_array($files)) { $files = array($files); }
foreach ($files as $file) { touch($file); } }
<?php
class sfFilesystem{
public function mkdirs($path, $mode = 0777) { if (is_dir($path)) { return true; }
return @mkdir($path, $mode, true); }
public function touch($files) { if (!is_array($files)) { $files = array($files); }
foreach ($files as $file) { touch($file); } }
if ( ){ ...}
if ( ) { ...}
![Page 29: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/29.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
<?php
namespace Symfony\Framework\FoundationBundle;
use Symfony\Components\...\ContainerInterface;
use Symfony\Components\HttpKernel\Request;
use Symfony\Components\HttpKernel\Response;
use Symfony\Components\...\HttpKernelInterface;
class Controller
{
protected $container;
protected $request;
...
![Page 30: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/30.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
namespaces
![Page 31: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/31.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
class Migration
{
...
}
class Migration
{
...
}
![Page 32: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/32.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
class sfMigration
{
...
}
class Doctrine_Migration
{
...
}
![Page 33: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/33.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
namespace Symfony;
class Migration
{
...
}
namespace Doctrine;
class Migration
{
...
}
![Page 34: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/34.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
namespace Symfony;
class Migration
{
...
}
namespace Doctrine;
class Migration
{
...
}
$migracion = new \Symfony\Migration();
$migracion = new \Doctrine\Migration();
![Page 35: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/35.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Symfony\ComponentsSymfony\Framework
Symfony\Foundation
![Page 36: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/36.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Symfony\ComponentsBrowserKit Console CssSelector
DependencyInjectionDependencyInjection DomCrawler
EventDispatcher File Finder
Form HttpKernel I18N
OutputEscaper Process Routing
Templating Validator Yaml
![Page 37: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/37.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
xxxxxx
xxxxxxxxxxxxx
completo
xxxxxx
![Page 38: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/38.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Estructura del proyecto
![Page 39: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/39.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
2.xmi_proyecto/ apps/ frontend/ cache/ config/ data/ lib/ log/ plugins/ test/ web/
mi_proyecto/ frontend/ src/ web/
1.x
![Page 40: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/40.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
mi_proyecto/ frontend/ src/ web/
![Page 41: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/41.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
mi_proyecto/frontend/ frontendKernel.php
![Page 42: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/42.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
mi_proyecto/frontend/ frontendKernel.php cache/ logs/ config/
![Page 43: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/43.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
mi_proyecto/frontend/ frontendKernel.php cache/ logs/ config/ routing.yml config.yml config_dev.yml config_prod.yml
![Page 44: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/44.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
2.x1.x
7 archivos
124 líneas
3 archivos
35 líneas
![Page 45: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/45.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
mi_proyecto/ frontend/ src/ web/
![Page 46: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/46.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
mi_proyecto/src/ autoload.php
![Page 47: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/47.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
mi_proyecto/src/ autoload.php Application/ Bundle/ vendor/
![Page 48: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/48.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
mi_proyecto/src/ autoload.php Application/ Bundle/ vendor/ symfony/ doctrine/ zend/
![Page 49: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/49.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
mi_proyecto/src/ autoload.php Application/ FrontendBundle/ Bundle/ vendor/ symfony/ doctrine/ zend/
![Page 50: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/50.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
2.x
Proyecto
Aplicación
Módulo
1.x
Proyecto
Aplicación
Bundle
![Page 51: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/51.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
ProyectoAplicación 1
Aplicación 2
Módulo 1
Módulo 2
Módulo 3
Módulo 4 Módulo 5
Plugins
Plugin 2
Plugin 1
Plugin 3
![Page 52: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/52.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
ProyectoAplicación 1
Aplicación 2
Módulo 1 Módulo 2 Módulo 3
Módulo 4 Módulo 5
Plugin 2
Plugin 1
Plugin 3
![Page 53: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/53.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
ProyectoAplicación 1
Aplicación 2
Bundle 1 Bundle 2 Bundle 3
Bundle 4 Bundle 5
Bundle 7
Bundle 6
Bundle 8
![Page 54: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/54.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Bundles(paquetes)
![Page 55: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/55.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
« Un bundle es un conjunto de archivos que implementan una
funcionalidad »
![Page 56: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/56.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
1.x
oferta, categoría, empresa
Proyecto
jobeet
Aplicacionesfrontend, backend
Módulos
![Page 57: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/57.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
2.x
frontend, backend
Proyecto
jobeet
Aplicacionesfrontend, backend
Bundle
![Page 58: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/58.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
2.x
oferta, categoría, empresa
Proyecto
jobeet
Aplicacionesfrontend, backend
Bundle
![Page 59: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/59.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
2.x
frontend, backend, oferta, categoría, empresa
Proyecto
jobeet
Aplicacionesfrontend, backend
Bundle
![Page 60: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/60.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
2.x
Aplicación
Módulo
Plugin
Librerías
1.x
Bundle
![Page 61: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/61.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
mi_proyecto/src/ autoload.php Application/ FrontendBundle/ Bundle/ vendor/
![Page 62: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/62.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
mi_proyecto/src/Application/ FrontendBundle/ Controller/ Resources/
![Page 63: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/63.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
mi_proyecto/src/Application/ FrontendBundle/ Controller/ DefaultController.php Resources/
![Page 64: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/64.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
mi_proyecto/src/Application/ FrontendBundle/ Controller/ DefaultController.php Resources/ config/ views/
![Page 65: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/65.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
mi_proyecto/src/Application/ FrontendBundle/ Controller/ DefaultController.php Resources/ config/ routing.yml views/ index.php
![Page 66: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/66.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
twig
![Page 67: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/67.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
PropelBundle/ Command/ DependencyInjection/ Logger/ Resources/ Tests/
![Page 68: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/68.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
TwigBundle/ DependencyInjection/ Extension/ Loader/ Renderer/ Resources/ Tests/ TokenParsers/
![Page 69: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/69.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
![Page 70: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/70.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
modular
xxxxxxxxxxxxx
completo
xxxxxx
![Page 71: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/71.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Inyección de Dependencias
![Page 72: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/72.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Inyección de Dependencias DIInversion of Control IoC
![Page 73: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/73.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Inyección de Dependencias DI
Inversion of Control
![Page 74: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/74.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
sfConfigsfProjectConfigurationsfAppConfiguration
sfContextconfig handlers...
1.x 2.x
DI
![Page 75: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/75.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Problema
¿Cómo configuro un objeto mailer para enviar emails desde mis aplicaciones?
![Page 76: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/76.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
public function emailAction(){ $mailer = $this->getMailer();
$mensaje = \Swift_Message::newInstance()
->setSubject('Asunto')
->setFrom('[email protected]')
->setTo('[email protected]')
->setBody('Cuerpo');
$mailer->send($mensaje);
...}
![Page 77: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/77.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
class Mailer
{
function __construct() {
$this->setUsername('xxxxxxxx')
$this->setPassword('xxxxxxxx');
}
}
$mailer = $this->getMailer();
![Page 78: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/78.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
class Mailer
{
function __construct() {
$this->setUsername(MAILER_USERNAME)
$this->setPassword(MAILER_PASSWORD);
}
}
define('MAILER_USERNAME', 'xxxxxxxx');
define('MAILER_PASSWORD', 'xxxxxxxx');
$mailer = $this->getMailer();
![Page 79: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/79.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
class Mailer
{
function __construct($user, $pass) {
$this->setUsername($user)
$this->setPassword($pass);
}
}
$mailer = $this->getMailer('xxxx', 'xxxx');
![Page 80: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/80.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
class Mailer
{
function __construct($transport) {
$this->transport = $transport;
}
}
$transport = new SMTP_Gmail($user, $pass);
$mailer = $this->getMailer($transport);
![Page 81: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/81.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
DIC
![Page 82: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/82.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
DIC
ependencynjectionontainer
![Page 83: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/83.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
DIC configuración flexible=
![Page 84: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/84.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
public function emailAction(){ $mailer = $this->getMailer();
$mensaje = \Swift_Message::newInstance() ->setSubject('Asunto') ->...
frontend/config/config.ymlswift.mailer:
transport: gmail
username: xxxxxxxx
password: xxxxxxxx
src/FrontendBundle/Controller/DefaultController.php
![Page 85: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/85.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
DIC! Objetos globales" Modelo" Tus clases
![Page 86: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/86.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
El modelo
![Page 87: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/87.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
![Page 88: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/88.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
![Page 89: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/89.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
DBAL
PDO
ORM
![Page 90: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/90.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
ORM
ODM
![Page 91: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/91.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Object Document Mapper
![Page 92: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/92.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
NoSQL
![Page 93: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/93.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
NoSQL
![Page 94: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/94.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
![Page 95: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/95.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
doctrine:ensure-production-settings
doctrine:cache:clear-metadata
doctrine:cache:clear-query
doctrine:clear-result
doctrine:data:load
doctrine:database:create
doctrine:database:drop
doctrine:generate:entities
doctrine:generate:entity
doctrine:generate:proxies
doctrine:generate:repositories
![Page 96: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/96.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
doctrine:mapping:convert
doctrine:mapping:convert-d1-schema
doctrine:mapping:import
doctrine:query:dql
doctrine:query:sql
doctrine:schema:create
doctrine:schema:drop
doctrine:schema:update
![Page 97: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/97.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
class DefaultController extends Controller
{
public function indexAction()
{
$conexion = $this->container->getService(
'database_connection'
);
$ofertas = $conexion->fetchAll(
'SELECT * FROM ofertas'
);
...
}
}
![Page 98: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/98.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
class DefaultController extends Controller
{
public function modificarAction()
{
$orm = $this->getEntityManager();
$oferta = new Oferta();
$oferta->setTitulo('Programador Senior');
$orm->persist($oferta);
$orm->flush();
...
}
}
![Page 99: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/99.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
class DefaultController extends Controller
{
public function modificarAction()
{
$odm = $this->getDocumentManager();
$oferta = new Oferta();
$oferta->setTitulo('Programador Senior');
$odm->persist($oferta);
$odm->flush();
...
}
}
![Page 100: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/100.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
La Vista
![Page 101: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/101.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
1.x 2.x
slotlayoutpartial
plantillacomponent
component slot
plantillaslot
plantillaslot
plantillaplantilla
acción+
plantilla
acción+
![Page 102: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/102.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
1.x 2.x
slotlayoutpartial
plantillacomponent
component slot
plantilla
slotplantilla slot+plantilla
plantilla acción+plantilla acción+
![Page 103: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/103.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
modular
fácilxxxxxxxx
completo
xxxxxx
![Page 104: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/104.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8" />
</head>
<body>
<?php echo $sf_content ?>
</body>
</html>
1.x
![Page 105: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/105.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8" />
</head>
<body>
<?php $view->slots->output('_content') ?>
</body>
</html>
2.x
![Page 106: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/106.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
<?php $view->extend(
'FrontendBundle:Default:layout'
); ?>
<h1><?php echo $oferta['titulo'] ?></h1>
<p><?php echo $oferta['descripcion'] ?></p>
...
![Page 107: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/107.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
$view->extend('FrontendBundle:Default:layout');
src/ Application/ FrontendBundle/ Resources/ views/ Default/ layout.php
![Page 108: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/108.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
$view->extend('FrontendBundle::layout');
src/ Application/ FrontendBundle/ Resources/ views/ layout.php
![Page 109: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/109.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
$view->extend('PlantillasBundle::layout');
src/ Bundle/ PlantillasBundle/ Resources/ views/ layout.php
![Page 110: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/110.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
$view->extend(
'PlantillasBundle::layout_pagina'
);
$view->extend(
'PlantillasBundle::layout_pagina'
);
$view->extend(
'PlantillasBundle::layout_pagina'
);
![Page 111: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/111.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
$view->extend(
'PlantillasBundle::layout_pagina'
);
$view->extend(
'PlantillasBundle::layout_seccion'
);
$view->extend(
'PlantillasBundle::layout_seccion'
);
![Page 112: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/112.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
$view->extend(
'PlantillasBundle::layout_pagina'
);
$view->extend(
'PlantillasBundle::layout'
);
$view->extend(
'PlantillasBundle::layout'
);
![Page 113: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/113.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
echo $view->render(
'SitioBundle::buscador'
)
...
echo $view->render(
'NoticiasBundle:Default:ultimaHora',
array('noticias' => $noticias)
)
![Page 114: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/114.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
echo $view->actions->output(
'BolsaBundle:Cotizaciones:indices',
array('indice' => 'IBEX35')
)
...
echo $view->actions->output(
'ContenidosBundle:Noticias:ultimaHora'
)
![Page 115: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/115.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
$view->extend(...)
$view->render(...)
$view->actions->output(...)
![Page 116: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/116.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Helpers
![Page 117: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/117.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Los helpers de Symfony2 son objetos
![Page 118: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/118.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
<a href="<?php
echo $view->router->generate('portada')
?>">
Portada
</a>
![Page 119: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/119.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
2.x
1.x
<?php include_stylesheets() ?>
<?php use_stylesheet('main.css') ?>
<?php echo $view->stylesheets ?>
<?php $view->stylesheets->add('main.css') ?>
![Page 120: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/120.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
«We're trading line length for lower [code] complexity»
David HeinemeierRailsConf 2010
![Page 121: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/121.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Plantillas avanzadas
![Page 122: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/122.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
twig
![Page 123: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/123.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
twig
PHP
<h1><?php echo $oferta['titulo'] ?></h1>
<h1>{{ oferta.titulo }}</h1>
![Page 124: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/124.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
twig
PHP<a href="<?php
echo $view->router->generate('portada')
?>">
Volver a la portada
</a>
<a href="{% route 'portada' %}">
Volver a la portada
</a>
![Page 125: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/125.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
twig
PHP<?php foreach ($ofertas as $id => $oferta): ?>
<h2><?php echo $oferta['titulo'] ?></h2>
<p><?php echo $oferta['descripcion'] ?></p>
...
<?php endforeach ?>
{% for oferta in ofertas %}
<h2>{{ oferta.titulo }}</h2>
<p>{{ oferta.descripcion }}</p>
...
{% endfor %}
![Page 126: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/126.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
! Código conciso! Diseñadores! Ultra-rápido
twig
![Page 127: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/127.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
El controlador
![Page 128: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/128.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
1.x 2.xrouting.yml routing.ymlbundle bundle
bundle bundle
![Page 129: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/129.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
2.x
1.x
homepage:
pattern: /
defaults: { _bundle: FoundationBundle ,
_controller: Default, _action: index }
apps/frontend/config/config.yml
frontend/config/config.yml
homepage:
url: /
param: { module: default, action: index }
![Page 130: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/130.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
homepage:
pattern: /
defaults: { _controller:
FoundationBundle:Default:index }
homepage:
pattern: /
defaults: { _bundle: FoundationBundle ,
_controller: Default, _action: index }
![Page 131: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/131.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
2.xfrontend/config/routing.yml
homepage:
pattern: /
defaults: { _controller:
FoundationBundle:Default:index }
frontend:
resource: FrontendBundle/Resources/
config/routing.yml
![Page 132: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/132.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
public function ofertaAction($id)
{
...
}
oferta:
pattern: /ofertas/:id
...
![Page 133: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/133.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
public function ofertaAction($seccion, $categoria)
{
...
}
oferta:
pattern: /ofertas/:seccion/:categoria
...
![Page 134: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/134.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
2.x
1.x
public function indexAction()
{
return $this->render(
'FrontendBundle:Default:index',
array('ofertas' => $ofertas)
);
}
public function indexAction()
{
$this->ofertas = $ofertas;
}
*Se supone que la plantilla es indexSuccess.php
![Page 135: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/135.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Formularios
![Page 136: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/136.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Form ModelosfForm Controlador Modelo
2.x
1.x
![Page 137: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/137.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
sfForm Controlador Modelo
Form Modelo
2.x
1.x
![Page 138: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/138.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
$form = new Form('cliente', $cliente);
$form->add(new TextField('nombre'));
$form->add(new TextField('apellidos'));
$form->add(new TextareaField('direccion'));
![Page 139: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/139.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
TextField
TextareaField
CheckboxField
ChoiceField
PasswordField
HiddenField
![Page 140: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/140.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
$form->add(new RepeatedField(
new PasswordField('contrasena'))
));
Contraseña
Repite la contraseña
![Page 141: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/141.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
$form->add(new CollectionField(
new TextField('telefonos'))
));
Teléfono 1
Teléfono 2
Teléfono 3
![Page 142: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/142.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
$direccion = new FieldGroup('direccion');
$direccion->add(new TextField('calle'));
$direccion->add(new TextField('numero'));
$direccion->add(new TextField('piso'));
$direccion->add(new TextField('cp'));
$form->add($direccion);
Calle
Número Piso CP
Dirección
![Page 143: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/143.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
TextField RepeatedField
TextareaField CollectionField
CheckboxField FieldGroup
ChoiceField
PasswordField
HiddenField
![Page 144: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/144.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
TextField RepeatedField MoneyField
TextareaField CollectionField DateField
CheckboxField FieldGroup BirthdayField
ChoiceField NumberField TimeField
PasswordField IntegerField DateTimeField
HiddenField PercentField TimezoneField
i18n
i18n
i18n
i18n
i18n
i18n
i18n
i18n
i18n
![Page 145: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/145.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Validación
![Page 146: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/146.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Form
Modelo
Validador
1.x 2.x
sfForm
sfValidator
Controlador
Modelo
![Page 147: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/147.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
1.x 2.x
Form
Modelo
Validador
FormValidadorsfForm
sfValidator
Controlador
Modelo
![Page 148: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/148.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Application\FrontendBundle\Model\Cliente:
properties:
nombre:
- MinLength: 3
fecha_nacimiento:
- Date: ~
codigo_postal:
- MaxLength: 5
![Page 149: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/149.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
class Cliente
{
public $nombre;
public $fecha_nacimiento;
public $codigo_postal;
}
![Page 150: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/150.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
class Cliente
{
/** @Validation({ @MinLength(3) }) */
public $nombre;
/** @Validation({ @Date }) */
public $fecha_nacimiento;
/** @Validation({ @MaxLength(5) }) */
public $codigo_postal;
}
![Page 151: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/151.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
JSR 303 Bean Validation
Validating data is a common task that occurs throughout an application, from the presentation layer to the persistence layer. Often the same validation logic is implemented in each layer, proving to be time consuming and error-prone. To avoid duplication of these validations in each layer, developers often bundle validation logic directly into the domain model, cluttering domain classes with validation code that is, in fact, metadata about the class itself.
This JSR defines a metadata model and API for JavaBean validation. The default metadata source is annotations, with the ability to override and extend the meta-data through the use of XML validation descriptors.
The validation API developed by this JSR is not intended for use in any one tier or programming model. It is specifically not tied to either the web tier or the persistence tier, and is available for both server-side application programming, as well as rich client Swing application developers. This API is seen as a general extension to the Java-Beans object model, and as such is expected to be used as a core component
![Page 152: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/152.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
$validador = $this->container->getService(
'validator'
);
$form = new Form(
'cliente',
$cliente,
$validador
);
![Page 153: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/153.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Pruebas unitarias y funcionales
![Page 154: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/154.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
PHPUnit 3.5
![Page 155: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/155.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
src/ Application/ FrontendBundle/ Model/ Article.php Tests/ Model/ ArticleTest.php
![Page 156: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/156.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
> phpunit -c frontend/
> phpunit -c frontend/ src/Application/
FrontendBundle/
![Page 157: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/157.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
> phpunit -c frontend/
![Page 158: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/158.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
> phpunit -c frontend/
![Page 159: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/159.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Estándares
![Page 160: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/160.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
1.x 2.x
sfCachesfLogger
sfValidatorautoload
lime
Zend_CacheZend_LoggerJava JSR 303PHP 5.3 autoloadPHPUnit
![Page 161: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/161.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
modular
fácilestándar
completo
xxxxxx
![Page 162: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/162.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Rendimiento
![Page 163: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/163.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
100veces más rápido
que symfony 1
![Page 164: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/164.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
100veces más rápido
que symfony 1
depende del tipo de benchmark
![Page 165: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/165.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
3 x
6 x
3 x
4 x
![Page 166: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/166.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
! Utiliza PHP 5.3.2
![Page 167: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/167.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
20 %
![Page 168: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/168.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
! Utiliza PHP 5.3.2! lazy-loading
![Page 169: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/169.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
servicioslistenershelpers
autoloader
PHP 5.3 interoperability
standard
![Page 170: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/170.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
! Utiliza PHP 5.3.2! lazy-loading! cache
![Page 171: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/171.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
frontendDevDebugProjectContainer.metafrontendDevDebugProjectContainer.phpfrontendUrlGenerator.metafrontendUrlGenerator.phpfrontendUrlMatcher.metafrontendUrlMatcher.php__TwigTemplate_a242fa75a6db74398d3e6.php
cache/
![Page 172: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/172.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
! Utiliza PHP 5.3.2! lazy-loading! cache! otros
![Page 173: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/173.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
> route:dump
RewriteCond %{PATH_INFO} ^/$
RewriteRule .* index.php
[QSA,L,E=_ROUTING__route:portada,E=_ROUTING__c
ontroller:FrontendBundle:Default:index]
RewriteCond %{PATH_INFO} ^/ofertas/([^/\.]+?)$
RewriteRule .* index.php
[QSA,L,E=_ROUTING__route:oferta,E=_ROUTING_id:
%1,E=_ROUTING__controller:FrontendBundle:Defau
lt:oferta]
![Page 174: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/174.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
! Utiliza PHP 5.3.2! lazy-loading! cache! otros! acelerador web
![Page 175: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/175.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Apache
![Page 176: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/176.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
ApacheSquid
![Page 177: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/177.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
ApacheSquid
![Page 178: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/178.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Symfony2 incluye un acelerador web
creado con PHP
![Page 179: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/179.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Apache Acelerador Aplicación
![Page 180: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/180.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
El acelerador guarda en la cache páginas completas
![Page 181: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/181.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
$respuesta->setExpires(...);
$respuesta->setMaxAge(...);
$respuesta->setTtl(...);
$respuesta->setLastModified(...);
![Page 182: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/182.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
public function indexAction()
{
$respuesta = $this->render(
'FrontendBundle:Default:index',
array('ofertas' => $ofertas)
);
$respuesta->setMaxAge(60);
return $respuesta;
}
![Page 183: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/183.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
El acelerador minimiza las veces que se
ejecuta la aplicación
![Page 184: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/184.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
![Page 185: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/185.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
5 minutos1 minuto
5 minutos
1 minuto
180 minutos
180 minutos
5 minutos
![Page 186: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/186.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
ESI Language Specification 1.0
Edge Side Includes (ESI) is an XML-based markup language that provides a means to assemble resources in HTTP clients. Unlike other in-markup languages, ESI is designed to leverage client tools like caches to improve end-user perceived performance, reduce processing overhead on the origin server, and enhanced availability. ESI allows for dynamic content assembly at the edge of the network, whether it is in a Content Delivery Network, end-user's browser, or in a "Reverse Proxy" right next to the origin server.
ESI is primarily intended for processing on surrogates (intermediaries that operate on behalf of the origin server, also known as "Reverse Proxies") that understand the ESI language. However, its application is not restricted to these devices. The control of where ESI is processed is addressed in the Edge Architecture Specification. Its capability token is ESI/1.0 ESI allows surrogates to treat parts of pages as cacheable resources, which gives them the ability to serve resources from cache in more situations.
IETF HTTP/1.1, part 6: CachingAbstract
The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems. This document is Part 6 of the seven-part specification that defines the protocol referred to as "HTTP/1.1" and, taken together, obsoletes RFC 2616. Part 6 defines requirements on HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.
![Page 187: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/187.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
...
<?php $view->actions->render(
'BolsaBundle::cotizaciones'
) ?>
...
![Page 188: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/188.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
...
<?php $view->actions->render(
'BolsaBundle::cotizaciones',
array('standalone' => true)
) ?>
...
![Page 189: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/189.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
<esi:include src="..." />
![Page 190: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/190.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
! Utiliza PHP 5.3.2! lazy-loading! cache! otros! acelerador web
![Page 191: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/191.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
100veces más rápido
que symfony 1
![Page 192: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/192.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
EXCLUSIVO
EXCLUSIVOEXCLUSIVO
EXCLUSIVO
EXCLUSIVO
EXCLUSIVO
EXCLUSIVO
EXCLUSIVO
![Page 193: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/193.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
modular
fácilestándar
completo
rápido
![Page 194: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/194.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
50%menos memoria que
symfony 1
![Page 195: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/195.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Y mucho más...
![Page 196: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/196.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Symfony2 está siendo desarrollado en estos momentos!
![Page 197: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/197.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
autoloading eventos bundles
cache formularios doctrine
controlador validador propel
CLI admin generator request/response
configuración helpers enrutamiento
base de datos i18n usuario
debug logger pruebas
escape mailer vista
![Page 198: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/198.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
primera versión alpha
septiembre
![Page 199: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/199.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
lanzamiento previsto
finales 2010
![Page 200: Symfony 2 - decharlas 2010](https://reader033.vdocuments.net/reader033/viewer/2022061106/5444bcd0b1af9f680a8b4a23/html5/thumbnails/200.jpg)
Jornadas Symfony http://decharlas.uji.es/symfony
Muchas gracias