Antes de comenzar, asegúrate de tener los siguientes requisitos:
1. PHP 7.3 o superior: Lumen requiere PHP 7.3 o una versión más reciente.
2. Composer: El gestor de dependencias de PHP.
Si no tienes Composer instalado, puedes descargarlo y configurarlo siguiendo las instrucciones en getcomposer.org.
Para sistemas basados en Unix, puedes usar los siguientes comandos:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'a5c698ffe4b8e2b3e1336d1c9f78e2befe2b4de7b68786a0e23d27bc6b2710f1ff174e95bdfdf6948be8b64880570a92') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Para sistemas Windows, puedes descargar el instalador de Composer desde aquí.
Con Composer instalado, puedes crear un nuevo proyecto Lumen utilizando el siguiente comando:
composer create-project --prefer-dist laravel/lumen lumen_project
Esto descargará Lumen y sus dependencias en una carpeta llamada lumen_project
. Puedes cambiar lumen_project
por el nombre de tu proyecto.
Lumen utiliza un archivo .env
para la configuración del entorno, similar a Laravel. Sin embargo, por defecto, Lumen no viene con un archivo .env
. Puedes crear uno copiando el archivo .env.example
y renombrándolo a .env
.
cp .env.example .env
Edita el archivo .env
para configurar tu entorno, como la configuración de la base de datos, la clave de la aplicación, etc.
A diferencia de Laravel, Lumen no tiene un comando de consola para generar la clave de la aplicación. Sin embargo, puedes usar cualquier generador de strings para crear una clave de 32 caracteres y establecerla en el archivo .env
:
APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
Lumen incluye un servidor web integrado para el desarrollo local. Puedes iniciarlo con el siguiente comando:
php -S localhost:8000 -t public
Abre tu navegador web y visita http://localhost:8000
para verificar que el servidor esté funcionando.
Con Lumen configurado, podemos definir una ruta simple. Abre el archivo routes/web.php
y agrega una ruta básica:
<?php
/** @var \Laravel\Lumen\Routing\Router $router */
$router->get('/', function () use ($router) {
return 'Hola, Lumen!';
});
Guarda el archivo y visita http://localhost:8000
en tu navegador. Deberías ver el mensaje "Hola, Lumen!".
Para organizar mejor tu aplicación, puedes crear controladores. Primero, crea un directorio app/Http/Controllers
si no existe:
mkdir -p app/Http/Controllers
Luego, crea un nuevo controlador llamado ExampleController.php
:
<?php
namespace App\Http\Controllers;
use Laravel\Lumen\Routing\Controller as BaseController;
class ExampleController extends BaseController
{
public function index()
{
return response()->json(['message' => 'Hola desde ExampleController!']);
}
}
Edita el archivo routes/web.php
para registrar una nueva ruta que apunte al controlador:
<?php
/** @var \Laravel\Lumen\Routing\Router $router */
$router->get('/', function () use ($router) {
return 'Hola, Lumen!';
});
$router->get('/example', 'ExampleController@index');
Visita http://localhost:8000/example
en tu navegador para ver el mensaje del controlador.
Lumen también soporta middleware para filtrar las solicitudes HTTP. Puedes crear middleware en app/Http/Middleware
. Aquí hay un ejemplo de un middleware que registra todas las solicitudes:
<?php
namespace App\Http\Middleware;
use Closure;
class LogRequest
{
public function handle($request, Closure $next)
{
// Logica para registrar la solicitud
file_put_contents('php://stderr', 'Request logged: ' . $request->fullUrl() . PHP_EOL);
return $next($request);
}
}
Para registrar este middleware, edita el archivo bootstrap/app.php
:
$app->middleware([
App\Http\Middleware\LogRequest::class
]);
Crear un proyecto con Lumen es un proceso directo y sencillo. Con la instalación de Composer, configuración básica y creación de rutas, puedes empezar rápidamente a desarrollar APIs rápidas y eficientes. Además, con la capacidad de añadir controladores y middleware, Lumen te proporciona la flexibilidad necesaria para construir aplicaciones robustas y escalables.
Jorge García
Fullstack developer