Hero

¿Qué es Silex?

Mayo 05, 2014

enzo
Silex

Hoy vengo a hablarles de Silex Micro Framework, creado por Fabien Potencier e Igor Wiedler.

Como su nombre lo indica Silex es un pedernal negro de gran dureza utilizado para la creación de las primeras armas primitivas; pues Silex en un micro framework que utiliza componentes de Symfony permitiéndole heredar las buenas practicas y profesionalismo de Symfony pero manteniendo la agilidad que da una aplicación sencilla de PHP.

La idea de Silex no es competir con Symfony en términos de potencia y funcionalidad con Symfony, pero Symfony nunca sera tan ágil como Silex.

Silex no esta orientado para aplicaciones web de gran envergadura o las que hagan un uso muy intensivo de bases de datos, debido a que aun no soporta oficialmente ningún ORM. Sin embargo, Silex gana claramente a Symfony2 en las aplicaciones pequeñas.

Este micro framework es la herramienta perfecta e intermedia para dar el salto a symfony ya que se pueden entender y practicar los conceptos de los principales componentes de Symfony. Además permite dar el salto de un estilo de programación orientada a objetos muy al estilo de PHP4 pero que aun se sigue usando en PHP5 a un estilo de programación orientada a objetos de uso extensivo en Symfony y otros frameworks de última generación.

En resumen para proyectos de mediana y baja complejidad en los que tenemos la libertad de escoger en que herramienta podemos realizarlo, Silex nos permitiría entregar un proyecto Bien Hecho, Barato y Entregado a Tiempo. Además de que el proyecto tendrá un desempeño envidiable.

  1. Instalar Composer.

Si no tienen aun composer pueden ver una guía de instalación en español multi plataforma en http://symfony.es/documentacion/guia-de-instalacion-de-composer/

Es común que se tenga una copia de composer dentro del proyecto como composer.phar . Yo recomiendo instalarlo como un comando multi usuario que este disponible para todos los proyectos, en mac yo lo hago por medio de Homebrew con el comando:

$ brew install josegonzalez/php/composer
  1. Como instalar Silex.

Silex se puede descargar desde fuentes disponible en http://silex.sensiolabs.org/download, aunque la forma mas recomendada es por medio de composer.

Cuando ya tenemos composer instalado y disponible; debemos crear un directorio vacío para nuestra aplicación y dentro de este directorio crear un archivo composer.json con el siguiente contenido.

{
    "require": {
        "silex/silex": "~1.2"
    }
}

Para descargarlo debemos ejecutar el comando de composer.

$ composer install

$ composer.phar install

Debes escoger el comando que se ajuste a tu ambiente, el install leerá el archivo composer.json y atendera la solicitud de instalar la libreria Silex que en nuestro caso es nuestro micro framework trayendo la version 1.2 o superior.

Las librerías serán buscadas en el repositorio https://packagist.org

Al final tendrás todo lo necesario para arrancar con Silex y todas las librerías estarán en un folder llamado vendor y tu aplicación deberá estar dentro del folder web e iniciando con un archivo llamado index.php donde estara tu aplicación.

Si este inicio de parece muy escueto y necesitas un poco de mas estructura te recomiendo instalar el Skeleton App para Silex creado por Fabien Potencier https://github.com/silexphp/Silex-Skeleton el cual podrás instalar con el siguiente comando.

$ composer create-project fabpot/silex-skeleton silex_skell --stability=dev

Al finalizar tendremos una estructura parecida a la siguiente.

├── LICENSE
├── bin
├── composer.json
├── composer.lock
├── config
├── phpunit.xml.dist
├── src
├── templates
├── var
├── vendor
└── web

La lista de componentes de Symfony que están presentes en Symfony son

  • Debug
  • Event Dispatcher
  • HTTP Foundation
  • HTTP Kernel
  • Routing
  • Yaml

Además Silex implementa los siguientes Services Providers

  • Twig
  • URL Generator
  • Session
  • Validator
  • Form
  • HTTP Cache
  • HTTP Fragments
  • Security
  • Remember Me
  • Swiftmailer
  • Monolog
  • Translation
  • Serializer
  • Doctrine
  • Controllers as Services

Para mas información acerca de Silex la documentación oficial http://silex.sensiolabs.org/documentation

También podemos ir agregando otras librerías para realizar las implementaciones que deseemos.

  1. Ejecutar Silex

Como ya he mencionado anteriormente nuestras aplicaciones Silex estarán en el directorio web y así separar las librerías fuera del directorio accesible via web.

Una aplicación Silex recibe en un solo archivo en este caso index.php que controlara todo el proceso de Modelo, Vista , Controlador es decir conexión a base de datos, renderizado y ruteo.

Si deseamos podemos tener tanto archivos como aplicaciones deseemos.

En producción solo debemos apuntar el Document Root de nuestro servidor a la carpeta web. Pero en ambiente de desarrollo podemos hacer uso de la característica Built-in web server de PHP 5.4+ con el siguiente comando.

$ php -S localhost:8000

En el comando anterior se debe ejecutar dentro del folder web y podemos escoger cualquier puerto que este libre en nuestro ambiente de desarrollo.

Espero que haya sido de su agrado.

Recibe consejos y oportunidades de trabajo 100% remotas y en dólares de weKnow Inc.