Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 06/02/2013

2,764 views

Published on

Introducción al microframework basado en Symfony 2 de PHP Silex por Sergio Gómez en el IV Betabeers Córdoba http://betabeers.com/event/4-betabeers-cordoba-626/

Published in: Education
  • Be the first to comment

Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 06/02/2013

  1. 1. Programación con elmicroframework Silex Sergio Gómez (@sgomez) 4º Betabeers Córdoba - 6 febrero 2013
  2. 2. Por si no me da tiempo...Página oficial de Silex: http://silex.sensiolabs.org/Página oficial de Symfony: http://symfony.com/Traducción del manual oficial de Silex: http://librosweb.es/silex/Gracias a Javier Eguiluz (@javiereguiluz): http://symfony.es/
  3. 3. ¿Por qué usar un framework?
  4. 4. ¿Por qué usar un framework?• Por escalabilidad y mantenimiento.• Reutilización de código.• Por seguridad.• Uso de patrones de diseño.
  5. 5. ¿Por qué usar un framework libre?
  6. 6. ¿Por qué usar un framework libre? Más allá de las consideraciones económicas.El software libre siempre tiene consideraciones éticas. ¿Por qué? Por honestidad con el cliente
  7. 7. ¿Qué es Silex?• Microframework (basado en componentes de Symfony y en Pimple)• Inspirado en microframework Sinatra (ruby)• Conciso, extensible, testeable.• Programado con PHP5.3
  8. 8. Frameworks y microframeworks• Frameworks: • Calidad contra facilidad. • Más potentes y funcionales.• Microframeworks: • Facilidad contra potencia. • Ágil.
  9. 9. PHP5.3 es otro mundo
  10. 10. Función normalfunction suma($a, $b) { return $a + $b;}
  11. 11. Función anónima$suma = function($a, $b) { return $a + $b;};echo $suma(4, 5);
  12. 12. Clausuras (Clausures) y ámbito$a=3;function ($b) { return $a + $b; // error}
  13. 13. Clausuras (Clausures) y ámbito$a=3;function ($b) use ($a) { return $a + $b;}
  14. 14. Silex. Cómo se instala.
  15. 15. Composer, gestión de paquetes en PHPbash$ curl -s http://getcomposer.org/installer | php// instalación tradicionalbash$ php composer.phar create-project silex/silex carpeta --stability=dev// instalación del "esqueleto" de Silex creado por Fabien Potencier$ php composer.phar create-project fabpot/silex-skeleton carpeta --stability=dev
  16. 16. Silex. Cómo funciona.
  17. 17. Hola Mundorequire_once __DIR__./../vendor/autoload.php;$app = new SilexApplication();$app->get(/hola, function() { return Hola mundo;});$app->run();
  18. 18. Rutas$app->get(/ , function () use ($app) { // ...});$app->get(/ruta, function () use ($app) { // ...});
  19. 19. Rutas con variables$app->get(/speakers/{p1}/{p2}, function ($p1, $p2) use ($app) {// ...});
  20. 20. Métodos HTTP$app->get(/ruta, function () use ($app) { ... });$app->post(/ruta, function () use ($app) { ... });$app->put(); $app->delete();$app->match(/ruta, function () use ($app) { ... });$app->match()->method(GET|POST);
  21. 21. Acceso a la petición del usuariouse SymfonyComponentHttpFoundationRequest;$app->get(/ruta/{parametro}, function (Request $request, $parametro) { ... });$request->server->get(HTTP_USER_AGENT)$request->get(parametro)$request->getMethod()
  22. 22. Modificar parámetros$app->get(/schedule/{slug}, function ($slug) use ($app){ ... })->convert(slug, function ($slug) { return strtolower($slug);});
  23. 23. Restricción de parámetros$app->get(/schedule/{track}, function ($track) {// ...})->assert(track, d+);->assert(track, trackd+);->assert(track, 1|2);
  24. 24. Parámetros por defecto$app->get(/schedule/{track}, function ($track) {// ...})->value(track, 1);
  25. 25. Etiquetado de rutas$app->get(/ , function () use ($app) { // ...})->bind(portada);
  26. 26. Middlewares
  27. 27. Middlewares• De aplicación. Se ejecutan siempre.• De enrutamiento. Solo en la ruta asociada
  28. 28. Middlewares de aplicación$app->before(function (Request $request) { ... });$app->before(function (Request $request) { ... },Application::EARLY_EVENT);$app->after(function (Request $request, Response$response) { ... });$app->finish(function (Request $request, Response$response) { ... });
  29. 29. Middlewares de enrutamiento$app->get(/somewhere, function () { // ...})->before($before1)->before($before2)->after($after1)->after($after2);
  30. 30. Silex es mucho más
  31. 31. Proveedores de Servicios• Bases de datos• Formularios• Plantillas• Caché• Email• Internacionalización• Seguridad• ...
  32. 32. Presentación más amplia en la web de Javier Eguiluzhttp://symfony.es/noticias/2013/01/30/silex- desarrollo-web-ágil-y-profesional-con-php/
  33. 33. Aplicación de prueba miniblog
  34. 34. Aplicación miniblog Está disponible en: https://github.com/sgomez/miniblog Una pequeña aplicación compuesta por un backendpara creación de contenido y un frontend para su visualización.
  35. 35. ¡Gracias!¿Preguntas?
  36. 36. Programación con elmicroframework Silex Sergio Gómez (@sgomez) 4º Betabeers Córdoba - 6 febrero 2013

×