Silex, desarrollo web ágil y profesional con PHP

El sábado pasado los organizadores de la conferencia Bilbostack me invitaron a impartir una charla titulada Silex, desarrollo web ágil y profesional con PHP. Antes de seguir escribiendo sobre Silex, os dejo las transparencias de la charla:

Silex, desarrollo web ágil y profesional con PHP from Javier Eguiluz

Paradójicamente, Silex es uno de los proyectos del ecosistema Symfony más conocidos por los programadores, pero a la vez uno de los menos utilizados. Algunos programadores siguen creyendo erróneamente que Silex es un juguete y que sólo sirve para programar APIs REST.

En realidad, Silex es un framework ultra-ágil y muy profesional para desarrollar aplicaciones web con PHP. Silex reduce el tiempo de desarrollo de aplicaciones pequeñas a horas y el de aplicaciones medianas a días. Su rendimiento es brutal y soporta casi todas las características que ya conoces de Symfony, como los formularios, la cache HTTP, los logs de Monolog, etc.

Silex no sirve para aplicaciones web gigantescas o las que hagan un uso muy intensivo de bases de datos, ya que por ejemplo no soporta todavía oficialmente ningún ORM. Pero en mi opinión, Silex gana claramente a Symfony2 en las aplicaciones pequeñas.

Si quieres probar Silex por primera vez, te aconsejo que no utilices la instalación tradicional sino la que ha creado Fabien Potencier. Esta última consiste en un Silex preparado para desarrollar aplicaciones (tiene varios archivos de configuración, comandos de consola, la aplicación está dividida en varios directorios muy lógicos, etc.)

// instalación tradicional (<-- no te la recomiendo)
$ php composer.phar create-project silex/silex tu_aplicacion.com --stability=dev

// instalación del "esqueleto" de Silex creado por Fabien Potencier
$ php composer.phar create-project fabpot/silex-skeleton tu_aplicacion.com --stability=dev

En el repositorio javiereguiluz/bilbostack puedes ver un ejemplo de aplicación Silex completa. Se trata de un clon del sitio oficial de la conferencia, que está creado con Wordpress. Por último, quizás te interese también la traducción del manual oficial de Silex.

Comentarios

  1. La semana que viene voy a dar una charla de 50 minutos sobre Silex aquí en Córdoba. Tu presentación me viene genial como complemento. Con tu permiso me gustaría aprovecharla, con los correspondientes créditos por supuesto.

    Sergio Gomez el 30 de enero de 2013 13:31:37

  2. Sergio, por supuesto puedes utilizar en tu charla todas las partes que quieras de la presentación. Suerte con la charla y a ver si les convences para que usen (o al menos prueben) Silex.

    Javier Eguiluz el 30 de enero de 2013 13:36:31

  3. Me encanta Silex, vengo usandolo por algunos meses ya. Tus notas como siempre muy puntuales y con tips muy interesantes!

    Esperamos tu proxima charla sobre YOLOPHP :P

    Saludos,

    Brian Debuire el 30 de enero de 2013 16:54:59

  4. Javier, Estoy revisando tu presentación (mi primer encuentro con Silex) y si bien comprendo los límites de Silex no estoy seguro de como diferenciar los proyectos que son recomendables para realizar con Silex de aquellos que no. Como sabemos, si bien un proyecto puede arrancar como algo pequeño se puede transformar en un monstruo de un momento para el otro; en este caso, ¿es fácil migrar a symfony2? Por otro lado, y para no hacer tan extenso el comentario, no soportando oficialmente un ORM; ¿es recomendable utilizarlo en proyectos que hagan uso de base de datos (la mayoría lo hace :D)?

    Muchas gracias. Saludos.

    Fabricio Salinas el 31 de enero de 2013 19:20:46

  5. ¿Grabaron tu ponencia Javier?

    Pablo Fernández Franco el 31 de enero de 2013 23:18:24

  6. @Pablo, sí que grabaron la charla en vídeo. No se cuándo la publicarán pero supongo que avisarán por Twitter y en la página oficial del evento.

    @Fabricio, entiendo tus dudas porque yo también las he tenido ... y las sigo teniendo. No hay ningún criterio o métrica objetiva que te permita seleccionar o descartar a Silex para un proyecto.

    Migrar a Symfony2 es posible, pero no automático ni fácil. Las cosas se simplifican mucho si defines los controladores en clases, tal y como explica el artículo de Igor Wiedler que enlaza la presentación. Lo que puedes hacer es utilizar Silex para prototipar en poquísimas horas un proyecto muy grande y cuando el cliente de su visto bueno, empezar a desarrollarlo en Symfony2.

    Respecto a la base de datos, sí que se puede utilizar perfectamente cualquier base de datos, pero tienes que hacer consultas SQL en vez de utilizar el ORM. Aquí lo tienes un poco más explicado: DoctrineServiceProvider

    Javier Eguiluz el 1 de febrero de 2013 09:56:05

  7. Javier, gracias por la respuesta. Intentaré realizar algún proyecto de prueba con Silex para terminar de conocerlo.

    Nuevamente, muchas gracias por la respuesta.

    Fabricio Salinas el 1 de febrero de 2013 18:46:27

  8. Habrá que volver a echarle un ojo a Silex, omitir Doctrine como orm y usar algún tipo de active record emhoi (en mi humilde opinión intransferible) sería un lujo. Doctrine, y la integración con formulario, me da la sensación que hace las cosas sencillas un poco complejas dando a la aplicación muchas veces un nivel de complejidad (valga la rebuznancia) exagerado sobre todo si integras con BBDD de terceros sin mapear en tú aplicación.

    Veo interesante darle una revisión al 'esqueleto' de Fabien, si con eso te montas un cuasi-codeigniter+twig con los componentes de Symfony puede ser la solución más que óptima para muchos proyectos pequeños y medianos (viva twig!!!!!), que al final es por donde nos movemos la mayoría. Y escalables hasta cierto punto llamando a más componentes, por qué no ...

    Gonzalo González Domínguez el 4 de febrero de 2013 13:41:06

  9. se ve muy bueno silex, pero me surgen algunas dudas cuales son los requerimientos para utilizarlo? se puede utilizar en un hosting común, que por lo general vienen con php 5.2 y sin acceso ssh?

    saludos desde Chile!

    Mario Valdivia el 5 de febrero de 2013 16:00:00

  10. @Mario Valdivia No, ya que es requisito tener 5.3 para usar silex porque usa namespaces y clousures entre otras cosas, twig si que tiene como requisito php 5.2

    De todas formas, y aquí rompo una lanza a favor del uso de php 5.3 (o 5.4), hablamos de que 5.3.0 es de junio de 2009, han pasado casi 4 años ... Si queremos ser 'profesionales' no podemos anclarnos en el pasado, la propia Debian stable (squeeze) ya trae 5.3 y es una distribución bastante conservadora. una empresa de hosting que no da opción 5.3 a día de hoy no es seria, será barata, pero no seria.

    Respecto a lo de ssh, siempre puedes ejecutar en local y subir luego los ficheros, queda pendiente el comando de borrar cache pero puedes borrar estos directorios por ftp, eso si tarda bastante más sobre todo el entorno 'dev'.

    Gonzalo González Domínguez el 18 de febrero de 2013 09:21:19

  11. Javier, muchísimas gracias por publicar la presentación (me hubiera encantado ir a la conferencia). Es muy completa y aclaratoria de los elementos fundamentales de Silex.

    Gracias de nuevo :-)

    Jorge Tomé Hernando el 7 de mayo de 2013 14:06:10

Publicada el

30 de enero de 2013

Síguenos en Twitter para acceder a más noticias.