Es un patrón clásico del diseño web. Está formado por tres niveles:
Se trata de un micro framework (entornos de trabajo) creado en PHP y basado en Symfony2
Un framework
https://www.youtube.com/watch?v=tDwXZv_FhS0
http://aprendephp.es/curso-de-silex
http://librosweb.es/libro/silex/capitulo_2/instalacion.html
Para los ejemplos, yo lo he descomprimido bajo /htdocs/mvc/sílex. De esta forma se crea toda la estructura de carpetas de Silex
El acceso a mi web se hará con la URL http://localhost/mvc/silex/web/
Este fichero tiene instrucciones para Apache para que siempre intente ejecutar el fichero index.phh. Su contenido será el siguiente:
OJO: ASEGURARSE QUE EL DIRECTORIO DE RewriteBase APUNTE AL INICIO DE NUESTRA APLICACION
RewriteEngine On
RewriteBase /mvc/silex/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
Básicamente se compone de muy poquitas tareas, de las que ya viene un ejemplo en el fichero index.php descomprimido
http://librosweb.es/libro/silex/capitulo_2/enrutamiento.html
Consiste en añadir una ruta al proyecto y definir su controlador (lo que se hace cuando se accede a esa ruta)
Primer ejemplo: crear dentro de web/index.php 2 controladores:
Segundo ejemplo: Añadir a lo anterior un nuevo controlador (http://localhost/mvc/sílex/web//blog) que muestre los títulos de una matriz que le es enviada por get
Son rutas que contienen un parámetro utilizado como datos. Por ejemplo, controlador que permite mostrar el contenido de un artículo individual del blog cuando se accede a la ruta /blogs/show/numero_del_articulo
Composer es un gestor de paquetes (parecido a apt de Debian).
Para poder ejecutarlo en cualquier ventana de comandos en ms-dos, sin necesidad de poner variables de sistema, configuración de PATH, ... se instala el programa Composer-Setup de forma que la orden composer se ejecuta en cualquier ventana.
TRUCO: Para abrir una ventana en el directorio seleccionado en el explorador de carpetas May+Boton dcho ratón y elegir "abrir una ventana de comandos aqui"
Twig es un gestor de vistas y plantillas
Abrir una ventana CMD en el directorio raiz del proyecto y teclear (ver composer, punto 3.4)
composer require twig/twig
Este comando modifica el fichero composer.json, carga y actualiza el repositorio de twig
Se crear una carpeta (por ejemplo, llamarla vistas) bajo la carpeta web del proyecto
Dentro de la carpeta recién creada, se ponen las vistas que se desean utilizar en el proyecto.
Permite acceder a numerosas bases de datos
Abrir una ventana de comandos sobre el directorio de la aplicación (May+Boton dcho)
composer require doctrine/dbal
Modifica composer.json, actualiza doctrine y sus dependencias
Tambien se puede hacer a pedal, modificando el fichero composer.json
{ "require": { "silex/silex": "~1.1", "doctrine/dbal": "^2.5", "twig/twig": "^1.24" }}
y luego actulizar el repositorio mediante la sentencia
composer update doctrine/dbal
Sentencias parecidas actualizan el paqueterio del proveedor que se especifique
Se adjunta el fichero index.php que instancia el repositorio de Doctrine y lee la tabla templa de la base de datos usuario de MySQL. Observar cómo se definen los parámetros de acceso a una base de datos MySQL y como la capa de controlador es totalmente transparente del Modelo de acceso a datos empleando el método fetchAll() para recoger un Array con los datos de la BD
Proyecto basado en el articulo de http://jhernandz.es/noticia/silex-doctrine-twig-i
Se va a realizar un proyecto que permita realizar el mantenimiento de una tabla.
Teclear en una ventana de comandos:
composer require twig/twig
composer require doctrine/dbal
Aqui puedes descargarte el fichero comprimido con los ficheros del proyecto. He movido index.php fuera de la carpeta web (por defecto) para simular un servidor en explotación e impedir que la gente "husmee" la estructura de carpetas del proyecto. Para reproducir este proyecto:
Aqui puedes ver "pantallazos" de mi aplicación
Listando | ![]() |
Insertando | ![]() |
Editando | ![]() |
Borrando | ![]() |