Programación con elmicroframework Silex        Sergio Gómez (@sgomez)  4º Betabeers Córdoba - 6 febrero 2013
Por si no me da tiempo...Página oficial de Silex:                     http://silex.sensiolabs.org/Página oficial de Symfon...
¿Por qué usar un framework?
¿Por qué usar un framework?•   Por escalabilidad y mantenimiento.•   Reutilización de código.•   Por seguridad.•   Uso de ...
¿Por qué usar un framework           libre?
¿Por qué usar un framework           libre?      Más allá de las consideraciones económicas.El software libre siempre tien...
¿Qué es Silex?•   Microframework (basado en componentes de Symfony y en    Pimple)•   Inspirado en microframework Sinatra ...
Frameworks y microframeworks•   Frameworks:    •   Calidad contra facilidad.    •   Más potentes y funcionales.•   Microfr...
PHP5.3 es otro mundo
Función normalfunction suma($a, $b) {  return $a + $b;}
Función anónima$suma = function($a, $b) {  return $a + $b;};echo $suma(4, 5);
Clausuras (Clausures) y ámbito$a=3;function ($b) {    return $a + $b; // error}
Clausuras (Clausures) y ámbito$a=3;function ($b) use ($a) {    return $a + $b;}
Silex. Cómo se instala.
Composer, gestión de paquetes               en PHPbash$ curl -s http://getcomposer.org/installer | php// instalación tradi...
Silex. Cómo funciona.
Hola Mundorequire_once __DIR__./../vendor/autoload.php;$app = new SilexApplication();$app->get(/hola, function() {   retur...
Rutas$app->get(/ , function () use ($app) {    // ...});$app->get(/ruta, function () use ($app) {   // ...});
Rutas con variables$app->get(/speakers/{p1}/{p2},             function ($p1, $p2) use ($app) {// ...});
Métodos HTTP$app->get(/ruta, function () use ($app) { ... });$app->post(/ruta, function () use ($app) { ... });$app->put()...
Acceso a la petición del usuariouse SymfonyComponentHttpFoundationRequest;$app->get(/ruta/{parametro},      function (Requ...
Modificar parámetros$app->get(/schedule/{slug}, function ($slug) use ($app){ ... })->convert(slug, function ($slug) {   re...
Restricción de parámetros$app->get(/schedule/{track}, function ($track) {// ...})->assert(track, d+);->assert(track, track...
Parámetros por defecto$app->get(/schedule/{track}, function ($track) {// ...})->value(track, 1);
Etiquetado de rutas$app->get(/ , function () use ($app) {  // ...})->bind(portada);
Middlewares
Middlewares•   De aplicación. Se ejecutan siempre.•   De enrutamiento. Solo en la ruta asociada
Middlewares de aplicación$app->before(function (Request $request) { ... });$app->before(function (Request $request) { ... ...
Middlewares de enrutamiento$app->get(/somewhere, function () {   // ...})->before($before1)->before($before2)->after($afte...
Silex es mucho más
Proveedores de Servicios•   Bases de datos•   Formularios•   Plantillas•   Caché•   Email•   Internacionalización•   Segur...
Presentación más amplia en la web de                Javier Eguiluzhttp://symfony.es/noticias/2013/01/30/silex- desarrollo-...
Aplicación de prueba      miniblog
Aplicación miniblog                      Está disponible en:            https://github.com/sgomez/miniblog      Una pequeñ...
¡Gracias!¿Preguntas?
Programación con elmicroframework Silex        Sergio Gómez (@sgomez)  4º Betabeers Córdoba - 6 febrero 2013
Upcoming SlideShare
Loading in …5
×

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

2,321 views
2,033 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
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,321
On SlideShare
0
From Embeds
0
Number of Embeds
130
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

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

×