Download - Silex para aplicaciones web MVC
![Page 1: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/1.jpg)
Silex como framework MVC @asiermarques
Simettric.com + 4visionshq.com
unconference
![Page 2: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/2.jpg)
Silex
Microframework PHP
– Lo mínimo para dar una solución
– Sencillo
– Minimalismo
– Pragmatismo
![Page 3: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/3.jpg)
La esencia del desarrollo web
Request
GET /uri
Response
Status Code: 200
Content-Type: text/html
![Page 4: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/4.jpg)
![Page 5: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/5.jpg)
Lo que se suele escuchar…
Silex es para proyectos pequeños.
Symfony2 es para proyectos grandes.
![Page 6: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/6.jpg)
![Page 7: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/10.jpg)
Speakerin.com & Silex
![Page 11: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/12.jpg)
![Page 13: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/13.jpg)
![Page 14: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/14.jpg)
![Page 15: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/16.jpg)
Demo
![Page 17: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/17.jpg)
ServiceProviders
![Page 18: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/18.jpg)
Los más comunes
• Session
• Form
• SwiftMailer
• Doctrine DBAL
• Twig
• Security
![Page 19: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/19.jpg)
Security Service Provider
• Firewalls
• UserProvider
• ACL
![Page 20: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/20.jpg)
Silex\Application extends \Pimple
Todo es un $app[servicio]
http://pimple.sensiolabs.org
![Page 21: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/24.jpg)
HTTP Caché: ESI
Permiten incrustar código en nuestro HTML desde otra ubicación (url)
![Page 25: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/25.jpg)
HTTP Caché: ESI
Permiten incrustar código en nuestro HTML desde otra ubicación (url)
/account/user-vcard
/cart/resume
![Page 26: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/26.jpg)
Opciones de ORM
Por defecto, ningún ServiceProvider oficial.
Doctrine:
dflydev-doctrine-orm-service-provider
Propel:
PropelServiceProvider (oficial de Propel)
![Page 27: Silex para aplicaciones web MVC](https://reader033.vdocuments.mx/reader033/viewer/2022060111/55632a78d8b42ad7398b4ed8/html5/thumbnails/27.jpg)
Gracias!
@asiermarques