top of page

Getting Started with Laravel Lumen: A Lightweight Micro-Framework for PHP

When it comes to building web applications with PHP, Laravel is often the go-to framework for developers due to its powerful features and elegant syntax. However, not every project requires the full capabilities of Laravel. For those cases where a lightweight and fast solution is needed, Laravel Lumen is an excellent choice. In this blog post, we’ll explore what Laravel Lumen is, its benefits, and how to get started with it.

What is Laravel Lumen?

Laravel Lumen is a micro-framework created by Taylor Otwell, the same developer behind Laravel. It is designed to be a faster and leaner version of Laravel, tailored for building microservices and APIs. Lumen maintains the core functionality and syntax of Laravel, making it a familiar choice for Laravel developers, but with a much smaller footprint and faster performance.

Why Choose Lumen?

  1. Speed: Lumen is optimized for speed, making it one of the fastest micro-frameworks available. This makes it an ideal choice for performance-critical applications like APIs and microservices.

  2. Familiar Syntax: If you are already familiar with Laravel, transitioning to Lumen is straightforward. It uses the same expressive syntax and components.

  3. Minimal Overhead: Lumen strips away much of the overhead found in Laravel, providing a more streamlined and lightweight framework. This makes it perfect for smaller projects or components of a larger system.

  4. Easy to Scale: Microservices built with Lumen can easily be scaled independently, providing flexibility in deploying and managing services.

Getting Started with Laravel Lumen


First, ensure you have Composer installed on your machine. Then, you can create a new Lumen project using Composer:

composer create-project --prefer-dist laravel/lumen blog

Navigate to your project directory:

cd blog

Directory Structure

Lumen’s directory structure is similar to Laravel’s but more simplified. Here's a quick overview:

  • app/: Contains the core of your application, including controllers, middleware, and more.

  • bootstrap/: Contains the file to bootstrap your application.

  • config/: Contains configuration files.

  • database/: Contains database migrations and seeds.

  • public/: The entry point for all requests to your application.

  • routes/: Contains all the routes for your application.

Basic Configuration

Open the .env file in the root of your project and set your application settings, such as the app name, environment, and database credentials.



Creating a Simple Route

Lumen uses a single file for all routes. Open routes/web.php and define a simple route:

$router->get('/', function () use ($router) { 
	return $router->app->version(); 

To start the Lumen server, run:


php -S localhost:8000 -t public

Visit http://localhost:8000 in your browser, and you should see the Lumen version displayed.

Creating a Controller

Create a new controller using Artisan:


php artisan make:controller ExampleController

Open app/Http/Controllers/ExampleController.php and add a method:


namespace App\Http\Controllers;

use Laravel\Lumen\Routing\Controller as BaseController; class ExampleController extends BaseController


public function show()


return response()->json(['message' => 'Hello, Lumen!']);



Update routes/web.php to use this controller:


$router->get('/example', 'ExampleController@show');

Now, visiting http://localhost:8000/example should return a JSON response with the message "Hello, Lumen!".


Laravel Lumen is a powerful micro-framework that offers the simplicity and elegance of Laravel while providing a lightweight and fast solution for building APIs and microservices. Whether you are building a small service or a part of a larger system, Lumen can help you achieve your goals efficiently. Start exploring Lumen today and experience the benefits of a streamlined framework tailored for speed and performance.

Happy coding!

4 views0 comments


bottom of page