¿Qué es Silex?

Author Top
enzo

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.

0. 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.

2. 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.

bursa esc
bursa eskort
bursa escort bayan bursa travesti escort bursa merkez escort bursaescort bursa escort bayanlar alanya eskort bayan antalya bayan eskort havalimanı transfer