Laravel est un framework PHP open-source puissant et populaire, conçu pour le développement d’applications web avec une syntaxe élégante et expressive. Laravel vise à simplifier les tâches courantes du développement web, telles que l’authentification, la gestion de sessions, la mise en cache et les routages.
1. Installation de Laravel
Pour commencer avec Laravel, vous devez avoir PHP et Composer installés sur votre machine.
Étapes d’installation :
- Installer Composer : Si ce n’est pas déjà fait, installez Composer, le gestionnaire de dépendances PHP, depuis getcomposer.org.
- Créer un nouveau projet Laravel :Ouvrez votre terminal et exécutez la commande suivante pour créer un nouveau projet Laravel :
composer create-project --prefer-dist laravel/laravel nom-du-projet "11.*"
- Naviguer dans le répertoire du projet :
cd nom-du-projet
- Démarrer le serveur de développement :
Laravel inclut un serveur de développement intégré. Pour démarrer ce serveur, exécutez :
php artisan serve
Vous pouvez maintenant accéder à votre nouvelle application Laravel en ouvrant votre navigateur et en visitant http://localhost:8000
.
2. Structure du Répertoire
La structure du répertoire d’un projet Laravel est organisée de manière à faciliter le développement et la maintenance.
- app/ : Contient le cœur de l’application, y compris les modèles, les contrôleurs et les services.
- bootstrap/ : Contient le fichier
app.php
qui initialise le framework. - config/ : Contient tous les fichiers de configuration.
- database/ : Contient les migrations, les seeds et les fichiers de base de données.
- public/ : Contient le fichier
index.php
qui est le point d’entrée de toutes les requêtes vers votre application. - resources/ : Contient les vues, les fichiers de langue et les assets non compilés.
- routes/ : Contient les fichiers de routes (
web.php
,api.php
, etc.). - storage/ : Contient les logs, les fichiers générés et les caches.
- tests/ : Contient les tests unitaires et fonctionnels.
- vendor/ : Contient les dépendances gérées par Composer.
3. Routage
Les routes définissent la façon dont les requêtes URL sont gérées par votre application.
Exemple de route simple
Ouvrez le fichier routes/web.php
et ajoutez une route :
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('welcome');
});
Cette route renvoie la vue welcome
lorsque l’URL racine est visitée.
Route avec contrôleur
Route::get('/utilisateurs', [UserController::class, 'index']);
4. Contrôleurs
Les contrôleurs regroupent la logique de gestion des requêtes HTTP.
Création d’un contrôleur
Vous pouvez créer un contrôleur en utilisant l’outil de ligne de commande Artisan :
php artisan make:controller UserController
Cela créera un fichier UserController.php
dans le répertoire app/Http/Controllers
.
Exemple de méthode dans un contrôleur
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function index()
{
return view('utilisateurs.index');
}
}
5. Vues
Les vues sont des templates qui affichent les données aux utilisateurs. Laravel utilise Blade comme moteur de templates.
Exemple de vue Blade
Créez un fichier index.blade.php
dans le répertoire resources/views/utilisateurs/
:
blade
<!DOCTYPE html>
<html>
<head>
<title>Liste des utilisateurs</title>
</head>
<body>
<h1>Liste des utilisateurs</h1>
<!-- Contenu de la page -->
</body>
</html>
6. Modèles et Migrations
Les modèles représentent les tables de votre base de données. Les migrations permettent de gérer les versions des schémas de base de données.
Création d’un modèle et d’une migration
php artisan make:model User -m
Cela créera un modèle User
et une migration pour créer la table users
.
Exemple de migration
Ouvrez le fichier de migration dans le répertoire database/migrations
:
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamps();
});
}
Exécutez la migration pour créer la table :
php artisan migrate
7. Eloquent ORM
Eloquent est l’ORM (Object-Relational Mapper) de Laravel, qui permet de travailler avec la base de données de manière expressive.
Exemple d’utilisation d’Eloquent
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
use HasFactory;
protected $fillable = ['name', 'email'];
}
Récupérer des données
use App\Models\User;
$users = User::all();
8. Formulaires et Validation
Laravel facilite la création de formulaires et la validation des données.
Exemple de formulaire
Créez une vue create.blade.php
:
<form action="/utilisateurs" method="POST">
@csrf
<label for="name">Nom :</label>
<input type="text" id="name" name="name">
<label for="email">Email :</label>
<input type="email" id="email" name="email">
<button type="submit">Créer</button>
</form>
Validation des données
Dans votre contrôleur, vous pouvez valider les données de la requête :
public function store(Request $request)
{
$validated = $request->validate([
'name' => 'required|max:255',
'email' => 'required|email|unique:users',
]);
User::create($validated);
return redirect('/utilisateurs');
}
9. Authentification
Laravel propose un système d’authentification complet prêt à l’emploi.
Installer l’authentification
composer require laravel/ui
php artisan ui vue --auth
npm install && npm run dev
php artisan migrate
Cela génère les routes, contrôleurs et vues nécessaires pour l’authentification.
10. Conclusion
Laravel est un framework puissant et flexible qui facilite le développement d’applications web robustes. En utilisant Laravel, vous bénéficiez d’un écosystème riche avec des outils et des fonctionnalités qui accélèrent le développement tout en maintenant une structure propre et organisée. Pour aller plus loin, explorez la documentation officielle de Laravel et expérimentez avec les différentes fonctionnalités pour approfondir vos compétences.