Dans cet article, nous allons parcourir les composants de base de Laravel et voir comment utiliser Laravel pour mettre en place un petit projet.
Laravel est un puissant et élégant framework de développement web en PHP qui a gagné une immense popularité parmi les développeurs en raison de sa simplicité, de sa polyvalence et de ses fonctionnalités puissantes. Au fil des ans, Laravel est devenu le framework PHP de choix pour les projets de grande envergure et les petits projets.
Conditions préalables : Bien démarrer avec Laravel
Avant de plonger dans le développement Laravel, nous devons nous assurer que nous avons tous les outils et logiciels nécessaires installés. Voici ce dont nous avons besoin:
-
PHP. Laravel fonctionne avec PHP, donc la première étape consiste à vous assurer que PHP est installé sur votre système. Si vous n’êtes pas sûr que PHP est installé, ouvrez un terminal ou une invite de commande et tapez
php -v
. Si PHP est installé, vous verrez un numéro de version. Sinon, vous devrez l’installer.Pour installer PHP sur votre machine, nous avons plusieurs options :
Installation locale. Vous pouvez installer PHP directement sur votre ordinateur. Visitez la page de téléchargement PHP pour obtenir la dernière version pour votre système d’exploitation.
Laravel Homestead. Pour une configuration plus fluide, surtout si vous êtes nouveau dans le développement PHP, envisagez d’utiliser Laravel Homestead. Homestead est une boîte Vagrant pré-configurée qui fournit un environnement de développement complet pour Laravel. Vous pouvez trouver les instructions d’installation ici.
-
Composer. Laravel utilise Composer pour la gestion des dépendances. Composer est le gestionnaire de dépendances PHP par défaut, et est largement utilisé et bien documenté.
-
Laravel Installer. Laravel peut être installé globalement sur notre système à l’aide du Laravel Installer, un outil de ligne de commande pratique qui simplifie et rationalise le processus de création de nouveaux projets Laravel. Pour l’installer globalement sur votre système, suivez ces étapes:
- Ouvrez un terminal ou un invite de commande.
- Exécutez la commande Composer suivante:
composer global require laravel/installer
Une fois l’installation terminée, assurez-vous que le répertoire bin global de Composer est inclus dans le « PATH » de votre système afin de pouvoir exécuter la commande
laravel
depuis n’importe où.Si vous préférez une alternative plus légère à Homestead, vous pourriez envisager Laravel Herd. Herd est un environnement de développement local basé sur Docker, spécifiquement conçu pour les projets Laravel. Vous pouvez en savoir plus sur Herd et sur la façon de le configurer ici.
En configurant votre environnement de développement avec PHP, Composer et l’Installateur Laravel (ou en explorant des options comme Homestead ou Herd), vous serez bien préparé pour entamer votre voyage avec Laravel. Dans les sections suivantes, nous allons passer en revue le processus de création d’un nouveau projet Laravel, explorer sa structure de répertoires et configurer l’environnement de développement.
Configuration d’un Nouveau Projet Laravel
Maintenant que notre environnement de développement est prêt, il est temps de créer un nouveau projet Laravel. Pour créer un nouveau projet « vide », nous pouvons utiliser la commande suivante dans le terminal:
composer create-project --prefer-dist laravel/laravel project-name
project-name
doit être remplacé par le nom réel du projet. Cette commande téléchargera la dernière version de Laravel et mettra en place un nouveau répertoire de projet avec tous les fichiers et dépendances nécessaires.
Structure de Répertoires : Naviguer dans un Projet Laravel
Après la création d’un nouveau projet Laravel, nous nous retrouverons face à une structure de répertoires bien organisée. Comprendre cette structure est crucial pour un développement Laravel efficace. Voici quelques répertoires clés et leurs rôles :
- app. Ce répertoire abrite la logique centrale de notre application, y compris les contrôleurs, les modèles et les fournisseurs de services.
- bootstrap. Les fichiers d’amorçage et de configuration de Laravel se trouvent ici.
- config. Les fichiers de configuration pour divers composants de notre application peuvent être trouvés ici, nous permettant de trouver et de personnaliser des paramètres comme les connexions de base de données et les services à partir d’un seul point du projet.
- Database. Dans ce répertoire, nous définirons nos migrations et graines de base de données à utiliser par l’ORM Eloquent de Laravel. Eloquent simplifie la gestion de la base de données.
- public. Les ressources accessibles publiquement, comme les CSS, JavaScript et les images, appartiennent ici. Ce répertoire contient également le point d’entrée de notre application, le fichier
index.php
. - resources. Les ressources brutes et non compilées de notre application, telles que les modèles Blade, Sass et JavaScript, sont stockées ici.
- routes. La configuration des routes de Laravel est gérée dans ce répertoire.
- storage. Les fichiers temporaires et de cache, ainsi que les journaux, sont stockés ici.
- vendor. Composer gère les dépendances de notre projet dans ce répertoire. Toutes les bibliothèques téléchargées seront dans ce répertoire.
Configuration : Installation de la base de données et Variables d’environnement
Pour configurer notre connexion à la base de de données, nous devons ouvrir le fichier .env
dans le répertoire racine du projet. Ici, nous pouvons spécifier le type de base de données, l’hôte, le nom d’utilisateur, le mot de passe et le nom de la base de données. Grâce à Eloquent ORM, Laravel prend en charge plusieurs connexions à la base de données, ce qui le rend polyvalent pour diverses exigences de projet.
Comprendre le fichier .env
Le fichier .env
est l’endroit où nous définissons les valeurs de configuration spécifiques à l’environnement, telles que les détails de connexion à la base de données, les clés API et d’autres paramètres. Jetons un coup d’œil à un exemple simple de ce que vous pourriez trouver dans un fichier .env
:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=my_database
DB_USERNAME=my_username
DB_PASSWORD=my_password
Dans cet exemple:
DB_CONNECTION
spécifie le type de pilote de base de données que nous utilisons (comme MySQL, PostgreSQL, SQLite).DB_HOST
spécifie l’hôte où se trouve notre serveur de base de données.DB_PORT
spécifie le port sur lequel le serveur de base de données est en cours d’exécution.DB_DATABASE
spécifie le nom de la base de données à laquelle nous voulons nous connecter.DB_USERNAME
etDB_PASSWORD
spécifient le nom d’utilisateur et le mot de passe requis pour accéder à la base de données.
Utilisation des variables d’environnement
Il est crucial de conserver des informations sensibles comme les identifiants de base de données en toute sécurité. Laravel encourage l’utilisation de variables d’environnement pour y parvenir. Au lieu d’incruster nos identifiants dans le fichier .env
, nous pouvons les référencer dans nos fichiers de configuration.
Par exemple, dans nos fichiers de configuration Laravel (situés dans le répertoire config/
), nous pouvons référencer la configuration de la base de données de cette façon :
'mysql' => [
'driver' => env('DB_CONNECTION', 'mysql'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
// ...
],
Ici, la fonction env()
récupère la valeur de la variable d’environnement spécifiée à partir du fichier .env
. Si la variable n’est pas trouvée, elle retourne une valeur par défaut fournie en tant que deuxième argument.
En utilisant des fichiers de configuration, nous pouvons stocker des données sensibles dans un emplacement plus sécurisé et facilement basculer entre les configurations des environnements (comme le développement et la production).
Avec notre projet Laravel créé, les répertoires organisés et la base de données configurée, nous sommes prêts à commencer à construire notre application web. Dans les sections suivantes, nous nous concentrerons sur la routage, les contrôleurs et le travail avec les modèles Blade pour nos vues frontend.
Routage, Contrôleurs et Vues : Le Cœur de Votre Application Laravel
Dans Laravel, le routage, les contrôleurs et les vues travaillent ensemble pour gérer les requêtes HTTP et rendre des pages web dynamiques. Comprendre ces concepts est essentiel pour créer des applications web avec Laravel.
En résumé, les requêtes HTTP sont reçues par le routeur, qui sait ensuite quel contrôleur doit gérer l’action. Le contrôleur est responsable du traitement des informations et de la visualisation des informations traitées à travers les vues.
Routage
Dans Laravel, nous pouvons définir des itinéraires dans le fichier routes/web.php
. Une définition de route de base ressemble à ceci :
Route::get('/welcome', function () {
return view('welcome');
});
Cet exemple configure une route qui, lorsqu’elle est consultée, renvoie la vue welcome
. Les routes peuvent également être utilisées pour appeler des actions de contrôleur, comme nous l’avons mentionné précédemment, nous permettant d’organiser le code de manière plus efficace.
Création d’un contrôleur
Controllers servent de pont entre nos routes et la logique de notre application. Pour créer un contrôleur, nous pouvons utiliser la commande make:controller
:
php artisan make:controller YourControllerName
Notre nouveau contrôleur contient des méthodes qui correspondent à différentes actions dans notre application, telles que la visualisation d’une page ou le traitement des données du formulaire.
Vues et templates Blade
Les vues dans Laravel sont chargées de présenter les données de notre application aux utilisateurs. Par défaut, Laravel utilise un moteur de templates appelé Blade, qui simplifie la création de vues dynamiques et réutilisables. Voici un exemple de rendu d’une vue dans une méthode de contrôleur:
public function index()
{
$data = ['name' => 'John'];
return view('welcome', $data);
}
Dans cet exemple, la vue welcome
est rendue avec des données, dans ce cas, 'name'
lui est transmis.
Blade est un moteur de templates très puissant qui permet la création de contenu dynamique à travers des instructions conditionnelles, des boucles, et ainsi de suite.
Migration et alimentation de la base de données
Le système de migration et de seeding de base de données de Laravel nous permet de définir notre schéma de base de données et de le remplir avec des données initiales. Nous pouvons considérer les migrations comme des changements de base de données contrôlés par version, et le seeding comme le processus d’ajout de données d’exemple.
Les migrations et le seeding sont des concepts super puissants qui permettent la cohérence de la base de données entre les environnements.
Pour créer une migration, nous pouvons utiliser la commande make:migration
:
php artisan make:migration create_table_name
Nous pouvons alors modifier le fichier de migration généré pour définir notre structure de table, puis utiliser Artisan pour exécuter la migration:
php artisan migrate
Le seeding est souvent utilisé pour remplir les tables avec des données initiales pour les tests et le développement. Pour créer des seeders, nous pouvons utiliser la commande make:seeder
et les exécuter avec:
php artisan db:seed
Création de Modèles pour l’Interaction avec la Base de Données
Le ORM Eloquent de Laravel simplifie les interactions avec la base de données en nous permettant de travailler avec les bases de données comme s’il s’agissait d’objets. Pour créer un modèle, nous utilisons la commande make:model
:
php artisan make:model YourModelName
Définissez la table et les relations dans le modèle pour faciliter la récupération et la manipulation des données. Par exemple, pour récupérer tous les enregistrements d’une table users
:
$users = YourModelName::all();
Armés de toutes ces connaissances, en intégrant routage, contrôleurs, vues, migration de base de données, seeding et modèles, nous sommes bien partis pour construire des applications web dynamiques avec Laravel. Dans les sections suivantes, nous plongerons plus en profondeur dans la création d’une application CRUD simple et explorerons des fonctionnalités plus avancées de Laravel.
Création d’une Application CRUD Simple avec Laravel
Lançons notre voyage avec Laravel au niveau supérieur en créant une application CRUD — dans ce cas, une application de simple enregistrement de livres où nous pouvons créer, lire, mettre à jour et supprimer des livres. Cette pratique nous aidera à comprendre comment implémenter des opérations CRUD avec Laravel.
Pour des raisons de taille de cet article, nous nous concentrerons uniquement sur la création de la première page de l’application, il vous revient donc de terminer cette application !
Étape 1 : Créer une migration pour la table des livres
Pour générer une migration pour la table books
, utilisons la commande suivante :
php artisan make:migration create_books_table
Cette commande génère un fichier de migration pour créer la table books
dans la base de données. Ensuite, modifiez le fichier de migration généré que nous venons de créer (database/migrations/YYYY_MM_DD_create_books_table.php
) pour définir la structure de la table :
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateBooksTable extends Migration
{
public function up()
{
Schema::create('books', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('author');
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('books');
}
}
Dans ce fichier de migration, nous définissons la structure de la table books
, y compris ses colonnes (id
, title
, author
, timestamps
). Ensuite, nous voulons exécuter la migration pour créer la table :
php artisan migrate
Cette commande exécute le fichier de migration et crée la table books
dans la base de données.
Étape 2 : Créer un seeder pour la table des livres
Ensuite, nous voulons générer un seeder pour la table books
pour la remplir avec des données initiales :
php artisan make:seeder BooksTableSeeder
Cette commande génère un fichier de seeder pour remplir la table books
avec des données initiales.
Modifiez le fichier de seeder (database/seeders/BooksTableSeeder.php
) pour définir des données de livres d’exemple :
use Illuminate\Database\Seeder;
class BooksTableSeeder extends Seeder
{
public function run()
{
DB::table('books')->insert([
['title' => 'Book 1', 'author' => 'Author A'],
['title' => 'Book 2', 'author' => 'Author B'],
['title' => 'Book 3', 'author' => 'Author C'],
]);
}
}
Dans ce fichier de semenceur, nous définissons des données d’exemple de livres qui seront insérées dans la table books
. Dans ce cas particulier, nous créons des livres de 1 à 3 et des auteurs de A à C.
Exécutez le semeur pour remplir la table books
:
php artisan db:seed --class=BooksTableSeeder
Cette commande exécute le fichier de semenceur et remplit la table books
avec les données d’exemple définies.
Étape 3: Créer un contrôleur
Générer un contrôleur pour la gestion des livres:
php artisan make:controller BookController
Cette commande génère un fichier de contrôleur (BookController.php
) contenant des méthodes pour gérer les opérations CRUD liées aux livres. Avec le contrôleur créé, concentrons-nous sur la mise en œuvre des méthodes CRUD dans le BookController
. Il est situé dans app/Http/Controllers/BookController.php
:
use App\Book; // Importer le modèle Book
public function index()
{
$books = Book::all();
return view('books.index', compact('books'));
}
public function create()
{
return view('books.create');
}
public function store(Request $request)
{
$book = new Book;
$book->title = $request->input('title');
$book->author = $request->input('author');
$book->save();
return redirect()->route('books.index');
}
// Mettre en œuvre les méthodes edit, update, show et delete de manière similaire
Dans ce fichier de contrôleur, nous définissons des méthodes pour gérer les opérations CRUD liées aux livres. Par exemple, la méthode index
récupère tous les livres de la base de données et les transmet à la vue index
, tandis que la méthode store
crée un nouvel enregistrement de livre basé sur les données soumises via un formulaire. La méthode create()
est responsable de la mise en forme pour la création d’un nouvel enregistrement de livre. Lorsqu’un utilisateur se rend sur la route associée à cette méthode, Laravel exécutera cette fonction et renverra une vue appelée books.create
.
Étape 4: Créer des vues
Créez des vues pour lister, créer et éditer des livres dans le dossier resources/views
.
Exemple de vue (create.blade.php
):
@extends('layout')
@section('content')
<h1>Create a New Book</h1>
<form method="POST" action="{{ route('books.store') }}">
@csrf
<div class="form-group">
<label for="title">Title</label>
<input type="text" name="title" class="form-control" id="title" placeholder="Enter book title">
</div>
<div class="form-group">
<label for="author">Author</label>
<input type="text" name="author" class="form-control" id="author" placeholder="Enter author name">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
<a href="{{ route('books.index') }}">Back to the list</a>
@endsection
Dans cet exemple, la vue create
contient un formulaire pour ajouter un nouveau livre. Le formulaire envoie les données à la méthode store
du BookController
. La directive @csrf
génère un jeton CSRF pour protéger contre la falsification de requête intersites.
Avec cet exemple, vous devriez être en mesure d’implémenter les méthodes du contrôleur et les vues pour le reste des opérations CRUD par vous-même, alors allez-y!
Conclusion
Dans cet article, nous avons examiné les bases d’une application Laravel : comment nous pouvons utiliser la ligne de commande pour nous aider à construire une application, la structure d’une application Laravel, et comment créer une application CRUD en Laravel.
I hope this article was useful and that you’re now capable of using Laravel to create your applications and expand the information here with more advanced topics. More information on Laravel can be found at the official Laravel website.
Source:
https://www.sitepoint.com/laravel-project-setup-beginners-guide/