Commencer avec Laravel : Créez votre première application pas à pas

Publié le 06 October 2025

Laravel est un framework PHP open-source, élégant et puissant, conçu pour simplifier le développement d'applications web robustes et performantes. Si vous êtes nouveau dans le monde du développement web ou si vous cherchez à améliorer votre flux de travail PHP, Laravel est un excellent choix. Ce guide pas à pas vous accompagnera dans la création de votre première application Laravel, en vous expliquant chaque étape en détail.

Pourquoi choisir Laravel ?

Avant de plonger dans le code, il est important de comprendre pourquoi Laravel est si populaire :

  • Facilité d'utilisation : Laravel offre une syntaxe claire et concise, ce qui rend le code plus facile à lire et à comprendre.
  • Productivité : Laravel fournit de nombreuses fonctionnalités prédéfinies, ce qui vous permet de gagner du temps et de vous concentrer sur la logique métier de votre application.
  • Sécurité : Laravel intègre des mécanismes de sécurité robustes, tels que la protection CSRF et la validation des données, pour vous aider à protéger votre application contre les vulnérabilités courantes.
  • Écosystème riche : Laravel dispose d'une vaste communauté et d'un écosystème de packages et d'outils qui peuvent étendre ses fonctionnalités.
  • Architecture MVC : Laravel suit l'architecture Modèle-Vue-Contrôleur (MVC), ce qui favorise la séparation des préoccupations et facilite la maintenance du code.
  • Artisan CLI : L'outil en ligne de commande Artisan vous permet de générer du code, d'exécuter des migrations de base de données et d'effectuer d'autres tâches courantes de développement.

Prérequis

Avant de commencer, assurez-vous d'avoir les éléments suivants installés sur votre système :

  • PHP : Laravel nécessite PHP 8.1 ou une version ultérieure.
  • Composer : Composer est un gestionnaire de dépendances pour PHP. Il est utilisé pour installer les packages Laravel et leurs dépendances. Téléchargez-le sur https://getcomposer.org/ et suivez les instructions d'installation.
  • Base de données : Vous aurez besoin d'une base de données pour stocker les données de votre application. MySQL, PostgreSQL, SQLite et SQL Server sont pris en charge.
  • Serveur Web : Un serveur web comme Apache ou Nginx est nécessaire pour servir votre application Laravel.
  • Node.js et npm (facultatif) : Si vous prévoyez d'utiliser des fonctionnalités front-end comme le scaffolding de Laravel, l'utilisation d'Asset compilation, ou l'utilisation de frameworks front-end comme Vue.js ou React, Node.js et npm sont requis.

Étape 1 : Installation de Laravel

La façon la plus simple de créer un nouveau projet Laravel est d'utiliser Composer :

composer create-project laravel/laravel nom_de_votre_application

Remplacez nom_de_votre_application par le nom que vous souhaitez donner à votre application. Cette commande créera un nouveau répertoire avec le nom spécifié et y installera tous les fichiers et dépendances nécessaires pour exécuter une application Laravel.

Une fois l'installation terminée, accédez au répertoire de votre application :

cd nom_de_votre_application

Étape 2 : Configuration de l'environnement

Laravel utilise un fichier .env pour stocker les paramètres de configuration spécifiques à votre environnement (développement, production, etc.). Copiez le fichier .env.example en .env :

cp .env.example .env

Ouvrez le fichier .env avec un éditeur de texte et configurez les paramètres suivants :

  • APP_NAME : Nom de votre application.
  • APP_ENV : Environnement de l'application (local, production, etc.).
  • APP_DEBUG : Active ou désactive le mode de débogage (true en développement, false en production).
  • APP_URL : URL de votre application.
  • DB_CONNECTION : Type de base de données (mysql, pgsql, sqlite, sqlsrv).
  • DB_HOST : Adresse du serveur de base de données.
  • DB_PORT : Port du serveur de base de données.
  • DB_DATABASE : Nom de la base de données.
  • DB_USERNAME : Nom d'utilisateur de la base de données.
  • DB_PASSWORD : Mot de passe de la base de données.

Assurez-vous de configurer correctement les paramètres de base de données pour qu'ils correspondent à votre configuration locale.

Générez une clé d'application unique :

php artisan key:generate

Cette commande générera une clé aléatoire et la définira dans le fichier .env. Cette clé est utilisée pour sécuriser votre application.

Étape 3 : Configuration de la base de données

Connectez-vous à votre système de gestion de base de données (par exemple, MySQL Workbench, phpMyAdmin) et créez une nouvelle base de données avec le nom spécifié dans le fichier .env (par exemple, laravel_app).

Étape 4 : Création d'une migration

Les migrations sont des fichiers qui définissent la structure de votre base de données. Elles permettent de créer et de modifier facilement les tables et les colonnes.

Créons une migration pour une table articles :

php artisan make:migration create_articles_table

Cette commande créera un nouveau fichier de migration dans le répertoire database/migrations. Ouvrez ce fichier et ajoutez le code suivant :

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('articles', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->text('content');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('articles');
    }
};

Ce code définit la structure de la table articles, qui aura les colonnes suivantes :

  • id : Identifiant unique de l'article (clé primaire).
  • title : Titre de l'article (chaîne de caractères).
  • content : Contenu de l'article (texte).
  • created_at : Date et heure de création de l'article.
  • updated_at : Date et heure de la dernière mise à jour de l'article.

Exécutez la migration pour créer la table dans la base de données :

php artisan migrate

Étape 5 : Création d'un modèle

Les modèles représentent les données de votre application et interagissent avec la base de données.

Créons un modèle Article :

php artisan make:model Article

Cette commande créera un nouveau fichier de modèle dans le répertoire app/Models. Ouvrez ce fichier et ajoutez le code suivant (bien qu'il puisse être vide pour des usages basiques) :

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Article extends Model
{
    use HasFactory;

    protected $fillable = [
        'title',
        'content',
    ];
}

$fillable définit les attributs du modèle qui peuvent être attribués en masse (par exemple, lors de la création d'un nouvel article).

Étape 6 : Création d'un contrôleur

Les contrôleurs gèrent les requêtes HTTP et renvoient des réponses.

Créons un contrôleur ArticleController :

php artisan make:controller ArticleController

Cette commande créera un nouveau fichier de contrôleur dans le répertoire app/Http/Controllers. Ouvrez ce fichier et ajoutez le code suivant :

<?php

namespace App\Http\Controllers;

use App\Models\Article;
use Illuminate\Http\Request;

class ArticleController extends Controller
{
    public function index()
    {
        $articles = Article::all();
        return view('articles.index', compact('articles'));
    }

    public function create()
    {
        return view('articles.create');
    }

    public function store(Request $request)
    {
        $validatedData = $request->validate([
            'title' => 'required|max:255',
            'content' => 'required',
        ]);

        Article::create($validatedData);

        return redirect('/articles')->with('success', 'Article créé avec succès !');
    }

    public function show(Article $article)
    {
        return view('articles.show', compact('article'));
    }

    public function edit(Article $article)
    {
        return view('articles.edit', compact('article'));
    }

    public function update(Request $request, Article $article)
    {
         $validatedData = $request->validate([
            'title' => 'required|max:255',
            'content' => 'required',
        ]);

        $article->update($validatedData);

        return redirect('/articles')->with('success', 'Article mis à jour avec succès !');
    }

    public function destroy(Article $article)
    {
        $article->delete();

        return redirect('/articles')->with('success', 'Article supprimé avec succès !');
    }
}

Ce contrôleur définit les actions suivantes :

  • index : Affiche une liste de tous les articles.
  • create : Affiche un formulaire pour créer un nouvel article.
  • store : Enregistre un nouvel article dans la base de données.
  • show : Affiche un article spécifique.
  • edit : Affiche un formulaire pour modifier un article existant.
  • update : Met à jour un article existant dans la base de données.
  • destroy : Supprime un article de la base de données.

Étape 7 : Création des vues

Les vues sont des fichiers qui définissent l'interface utilisateur de votre application.

Créez un répertoire articles dans le répertoire resources/views. Dans ce répertoire, créez les fichiers de vue suivants :

  • index.blade.php
  • create.blade.php
  • show.blade.php
  • edit.blade.php

resources/views/articles/index.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>Articles</title>
</head>
<body>
    <h1>Articles</h1>

    @if(session('success'))
        <div class="alert alert-success">
            {{ session('success') }}
        </div>
    @endif

    <a href="/articles/create">Créer un nouvel article</a>

    <ul>
        @foreach($articles as $article)
            <li>
                <a href="/articles/{{ $article->id }}">{{ $article->title }}</a>
                <a href="/articles/{{ $article->id }}/edit">Modifier</a>
                <form action="/articles/{{ $article->id }}" method="POST">
                    @csrf
                    @method('DELETE')
                    <button type="submit">Supprimer</button>
                </form>
            </li>
        @endforeach
    </ul>
</body>
</html>

resources/views/articles/create.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>Créer un article</title>
</head>
<body>
    <h1>Créer un article</h1>

    <form action="/articles" method="POST">
        @csrf

        <label for="title">Titre :</label><br>
        <input type="text" id="title" name="title"><br><br>

        <label for="content">Contenu :</label><br>
        <textarea id="content" name="content"></textarea><br><br>

        <button type="submit">Créer</button>
    </form>
</body>
</html>

resources/views/articles/show.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>{{ $article->title }}</title>
</head>
<body>
    <h1>{{ $article->title }}</h1>

    <p>{{ $article->content }}</p>
</body>
</html>

resources/views/articles/edit.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>Modifier l'article</title>
</head>
<body>
    <h1>Modifier l'article</h1>

    <form action="/articles/{{ $article->id }}" method="POST">
        @csrf
        @method('PUT')

        <label for="title">Titre :</label><br>
        <input type="text" id="title" name="title" value="{{ $article->title }}"><br><br>

        <label for="content">Contenu :</label><br>
        <textarea id="content" name="content">{{ $article->content }}</textarea><br><br>

        <button type="submit">Mettre à jour</button>
    </form>
</body>
</html>

Étape 8 : Définition des routes

Les routes définissent les URLs de votre application et les associent aux actions des contrôleurs.

Ouvrez le fichier routes/web.php et ajoutez les routes suivantes :

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ArticleController;

Route::resource('articles', ArticleController::class);

Cette ligne de code définit toutes les routes nécessaires pour gérer les articles (index, create, store, show, edit, update, destroy) en utilisant le contrôleur ArticleController.

Étape 9 : Lancer le serveur de développement

Pour lancer le serveur de développement intégré de Laravel, exécutez la commande suivante :

php artisan serve

Cela démarrera un serveur web sur http://localhost:8000. Ouvrez cette URL dans votre navigateur pour voir votre application en action.

Vous devriez maintenant être capable de :

  • Afficher une liste d'articles (vide pour l'instant).
  • Créer de nouveaux articles.
  • Afficher un article spécifique.
  • Modifier un article existant.
  • Supprimer un article.

Conclusion

Vous avez maintenant créé votre première application Laravel simple. Ce guide vous a présenté les concepts fondamentaux de Laravel, tels que les migrations, les modèles, les contrôleurs et les vues. Vous pouvez maintenant explorer davantage les fonctionnalités de Laravel et créer des applications web plus complexes. N'hésitez pas à consulter la documentation officielle de Laravel pour approfondir vos connaissances : https://laravel.com/docs/

Partager cet article :

Autres articles