silex para aplicaciones web mvc

27
Silex como framework MVC @asiermarques Simettric.com + 4visionshq.com unconference

Upload: asier-marques

Post on 25-May-2015

1.262 views

Category:

Documents


1 download

DESCRIPTION

Mi charla en la unconference de DeSymfony2013.

TRANSCRIPT

Page 1: Silex para aplicaciones web MVC

Silex como framework MVC @asiermarques

Simettric.com + 4visionshq.com

unconference

Page 2: Silex para aplicaciones web MVC

Silex

Microframework PHP

– Lo mínimo para dar una solución

– Sencillo

– Minimalismo

– Pragmatismo

Page 3: Silex para aplicaciones web MVC

La esencia del desarrollo web

Request

GET /uri

Response

Status Code: 200

Content-Type: text/html

Page 4: Silex para aplicaciones web MVC
Page 5: Silex para aplicaciones web MVC

Lo que se suele escuchar…

Silex es para proyectos pequeños.

Symfony2 es para proyectos grandes.

Page 6: Silex para aplicaciones web MVC
Page 7: Silex para aplicaciones web MVC

Dustin Whittle

“Use silex if you are comfortable with making all

of your own architecture decisions and full stack

Symfony2 if not.”

Page 8: Silex para aplicaciones web MVC

Fabien Potencier

“A micro-framework is just about the bare minimum you need to get started. It lets you decide which directory structure you want, it lets you decide which feature you

want to enable, it lets decide how you want to work.”

Page 9: Silex para aplicaciones web MVC

Symfony2 VS Silex

La visión de Symfony2 es ahorrar la mayor problemática posible al desarrollador.

La visión de Silex es resolver la menor problemática posible al desarrollador.

Con Silex no se piensa tanto en cómo trabajar con el framework para resolver problemas.

Page 10: Silex para aplicaciones web MVC

Speakerin.com & Silex

Page 11: Silex para aplicaciones web MVC

SpeakerIn.com

• Desarrollado en 48horas en un #hackmité

hackmite.elcomite.org

• Por dos personas: @fran_mosteiro y yo. – Viniendo de Java, Fran no tenía experiencia previa en php.

• Elegimos Silex. – Porque somos de Bilbao, pero no tanto.

Page 12: Silex para aplicaciones web MVC
Page 13: Silex para aplicaciones web MVC
Page 14: Silex para aplicaciones web MVC
Page 15: Silex para aplicaciones web MVC

Conclusiones

• Terminamos el proyecto con éxito. http://speakerin.com

• Usamos los proveedores básicos: sesión, swiftmailer para conectar con mandrill.com.

• Paris & Idiorm, como ORM.

• No usamos el componente de seguridad.

• No usamos controladores como clases.

Page 16: Silex para aplicaciones web MVC

Demo

Page 17: Silex para aplicaciones web MVC

ServiceProviders

Page 18: Silex para aplicaciones web MVC

Los más comunes

• Session

• Form

• SwiftMailer

• Doctrine DBAL

• Twig

• Security

Page 19: Silex para aplicaciones web MVC

Security Service Provider

• Firewalls

• UserProvider

• ACL

Page 20: Silex para aplicaciones web MVC

Silex\Application extends \Pimple

Todo es un $app[servicio]

http://pimple.sensiolabs.org

Page 21: Silex para aplicaciones web MVC

Escalar Silex

• Estructura de directorios – composer.phar create-project fabpot/silex-skeleton

• Controladores como clases – $app->get('/', 'Namespace\Controlador::acción');

• Grupos de rutas

• Caché HTTP

• ORM

Page 22: Silex para aplicaciones web MVC

Grupos de rutas

$blog = $app['controllers_factory'];

$blog->get('/', function() { … });

$blog->post('/nuevo', function() { … });

$blog->get('/comentarios', function() { … });

$app->mount('/blog', $blog);

Page 23: Silex para aplicaciones web MVC

HTTP Caché

$app['cache']->run();

• Proxy cache escrito en PHP

• Soporta cabeceras y directrices de caché de HTTP

• Soporte para ESI

Page 24: Silex para aplicaciones web MVC

HTTP Caché: ESI

Permiten incrustar código en nuestro HTML desde otra ubicación (url)

Page 25: Silex para aplicaciones web MVC

HTTP Caché: ESI

Permiten incrustar código en nuestro HTML desde otra ubicación (url)

/account/user-vcard

/cart/resume

Page 27: Silex para aplicaciones web MVC

Gracias!

@asiermarques