PHP SLIM Microframework

El microframework SLIM para PHP provee funcionalidades importantes mediante una librería sencilla.

Seguidamente presento algunas notas de cosas que he aprendido recientemente respecto de SLIM.

Para crear un proyecto PHP con SLIM utilizaremos el sistema de gestión de paquetes para PHP denominado composer .

Expandir para ver más acerca de composer

Composer se puede instalar en ambientes Windows, Linux o Mac en una variedad de formas. Desde la instalación para Ubuntu via sudo apt install composer para Ubuntu, hasta descargando y siguiendo las instrucciones de https://getcomposer.org/download/

Composer permite administrar librerías y sus dependencias, instalarlas, y también crear proyectos.

 

Expandir para ver la creación de un proyecto SLIM

Crearemos una carpeta para nuestro proyecto. Digamos “mi_proyecto”. Con una terminal, entramos en dicha carpeta y ejecutamos los siguientes comandos:

mkdir mi_proyecto
cd mi_proyecto
composer require slim/slim "^3.0"


 

Expandir para ver cómo configuramos el proyecto inicial

Vamos a crear dos archivos. Uno llamdo “.htaccess” (es decir: punto htaccess) y otro llamado “index.php“.

El archivo .htaccess contiene reglas para el servidor web Apache (y sus derivados) que permiten enrutar las solicitudes de un navegador a un solo archivo (index.php)

RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]

En el archivo anterior, la línea 1 activa un redireccionador de solicitudes
La línea 2 define una condición que básicamente se traduce en “cuando el archivo solicitado no se puede encontrar”
La línea 3 hace lo mismo, pero cuando la carpeta solicitada no se puede encontrar.
Finalmente la línea 4 define qué hacer: abrir el archivo index.php pasándole la información proveniente de la solicitud del navegador.
Seguidamente creamos un archivo nombrado index.php con el siguiente contenido:

<?php 
require 'vendor/autoload.php';
$app = new \Slim\App(); 
$app->get('/hello/{name}', function($request, $response, $args){
   return $response->write("Hola " . $args['name']);
});
$app->run();

Acá la primera línea abre el código PHP, la segunda línea carga un archivo denominado autoload.php de la carpeta vendor. Esta es una facilidad de composer para cargar de forma automática las bibliotecas y clases presentes en el proyecto.

La cuarta línea crea un nuevo objeto de tipo “aplicación de SLIM”

La quinta línea define una “ruta” denominada hello que recibe un parámetro llamado name. Al recibir esta llamada del navegador, el sistema ejecutará la función anónima definida en las líneas 5,6,7 en las cuales la línea 6 simplemente retorna una respuesta al navegador que dice “Hola ” más el nombre indicado en el parámetro {name}. Así si el navegador llama al servidor web con un URL parecido a este: http://localhost/hello/Jose, la respuesta al navegador será “Hola Jose“.

La última línea “ejecuta” nuestra aplicación.

Para  probarlo existen muchas maneras relacionadas con copiar la carpeta de nuestro proyecto a la carpeta raiz del servidor apache (c:\xampp\htdocs\mi_proyecto)

Otra manera sencilla es utilizar el servidor web incluido en PHP7 con el siguiente comando:

php -S localhost:9090

Este comando ejecuta un pequeño servidor web localmente usando el puerto 9090 (se puede usar algun otro puerto disponible como el 8080 o el 80).

Al abrir este servidor, podremos usar un navegador de Internet cualquiera para acceder la dirección correspondiente (en este caso el URL http://localhost:9090/hello/Jose ) donde “hello/Jose” coincide con la ruta definida en la línea 4 del programa index.php y este responde con el saludo “Hola Jose” tal y como vemos en las siguientes imágenes.

Un concepto importante acá es el de “ruta” (la parte azul del URL en el párrafo anterior). La ruta azul está compuesta de un “recurso” al que llamaremos “el controlador hello” y de un parámetro al que llamaremos name, que en nuestro caso tiene el valor “Jose”. Esta ruta está definida en la línea 4 del archivo index.php explicado anteriormente.

   
(Hacer clic en las imágenes para agrandar)

 

Espero que esta prueba haya sido de utilidad. Está basada en el curso de Lynda.com titulado “Building APIs in PHP Using the Slim Microframework” producido por Keith Casey. Este curso de Lynda me ha parecido sumamente detallado y bien explicado. Vale la pena llevarlo.

Otro recurso interesante es el sitio oficial de SLIM en https://www.slimframework.com/

En próximas entregas estaremos explicando un uso más elaborado de este microframework, así como el concepto que maneja SLIM de “middleware”.

 

255 total views, 8 views today

9Shares

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.