Aprendre à coder pdevtuto

Structure des dossiers de Laravel 10

Bonjour chers développeurs,

Dans cet article de blog nous allons parler de la structure des dossiers de Laravel 10. Vous allez apprendre les commandes qui permettent d’installer notre premier projet avec Laravel 10. Afin nous allons approfondir en détaillants la structure des dossiers de Laravel 10.

Documentation de Laravel 10

Nous allons faire un petit rappel avant de commencer avec la notion de la structure des dossiers dans Laravel 10.

Si vous avez besoins de savoir un peu plus sur le Framework Laravel, nous vous vous invitons à consulter la documentation officielle de Laravel en suivant ce lien : Site officiel de Laravel 10

Malheureusement cette documentation elle est disponible qu’en Anglais mais elle est relativement complète que vous y trouverez tout ce dont nous allons utiliser dans cette formation.

Commencez à exploiter la documentation de Laravel en cliquant sur « GET STARTED », qui va vous amener à la page de la documentation officielle de Laravel.

Vous trouverez que les points sont regroupés dans différentes catégories comme par exemple : Les concepts d’architecture, La sécurité, La base de données, ORM Eloquent, etc.

Mais nous actuellement ce qui nous intéresse, c’est la partie de « Getting Started » où nous allons retrouver la partie consacrée à l’installation de Laravel 10 dans notre Projet.

Documentation Laravel 10

Installation de Laravel 10

Vous trouverez qu’il existe différentes manières d’inataller Laravel ; vous avez même un système en ligne de commande mais l’approche la plus simple c’est de se baser sur Composer avec la commande ci-dessous :

composer create-project laravel/laravel example-app

Pour créer votre premier projet laravel, vous allez utiliser votre éditeur de texte préféré ; pour cet article nous allons utiliser VS Code.

Allez ensuite dans le terminal de votre éditeur et taper la commande suivante :

composer create-project laravel/laravel=10 pdevtuto

Si vous êtes curieux, vous allez constater que j’ai ajouté laravel=10, ceci tout simplement de nous assurer que nous utilisons la même version 10.

En fin pdevtuto est tout simplement le nom de notre projet. N’hésitez donc pas à mettre le nom de votre choix.

Validez ensuite votre commande pour que votre projet laravel s’installer dans le dossier racine de votre serveur.

Ce qu’il faut savoir est que cette commande va installer les différentes dépendances et ainsi créer la structure de base pour votre projet laravel.

Découvrez aussi : Introduction à Laravel 10

Structure des dossiers de Laravel 10

Maintenant que nous avons installé avec succès notre projet, découvrons maintenant la structure de base de notre projet.

Structure des dossiers Laravel 10

App

A la racine de notre projet, on a un dossier appelé app, ce dossier contiendra tous les codes de notre application.

Si vous jeter un œil dans le fichier composer.json, vous trouverez que c’est là qu’il fait la liaison avec le namespace App

"autoload": {
     "psr-4": {
         "App\\": "app/",
         "Database\\Factories\\": "database/factories/",
         "Database\\Seeders\\": "database/seeders/"
     }
},

Dans ce dossier app il y a différents sous dossiers qui correspondent à des classes préconçues par la laravel comme par exemple : Console, Exceptions, http, Models et Providers.

Nous aurons le temps d’y revenir un peu plus loin lorsqu’on va commencer à taper nos premières lignes de code.

Mais actuellement sachez que c’est dans ce dossier que nous passerons le ¾ de notre temps.

Bootstrap

On n’aura pas à toucher dans ce dossier, mais c’est ce dossier qui nous permet de démarrer notre premier application laravel.

app.php

<?php

/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| The first thing we will do is create a new Laravel application instance
| which serves as the "glue" for all the components of Laravel, and is
| the IoC container for the system binding all of the various parts.
|
*/

$app = new Illuminate\Foundation\Application(
    $_ENV['APP_BASE_PATH'] ?? dirname(__DIR__)
);

/*
|--------------------------------------------------------------------------
| Bind Important Interfaces
|--------------------------------------------------------------------------
|
| Next, we need to bind some important interfaces into the container so
| we will be able to resolve them when needed. The kernels serve the
| incoming requests to this application from both the web and CLI.
|
*/

$app->singleton(
    Illuminate\Contracts\Http\Kernel::class,
    App\Http\Kernel::class
);

$app->singleton(
    Illuminate\Contracts\Console\Kernel::class,
    App\Console\Kernel::class
);

$app->singleton(
    Illuminate\Contracts\Debug\ExceptionHandler::class,
    App\Exceptions\Handler::class
);

/*
|--------------------------------------------------------------------------
| Return The Application
|--------------------------------------------------------------------------
|
| This script returns the application instance. The instance is given to
| the calling script so we can separate the building of the instances
| from the actual running of the application and sending responses.
|
*/

return $app;

Config

Ce dossier est important car il est constitué des tous les composants de configuration de notre application.

On peut y retrouver le fichier mail pour la configuration des mails, session pour la configuration des sessions des utilisateurs, etc.

Database

Ce dossier contient tous les éléments qui ont trait à la base de données de notre application.

A l’intérieur on a les sous dossiers

Factories : constitué par des classes qui initialisent les données à entrer dans la base de données.

Migrations : c’est qui va décrire la structure des tables de notre base de données. Donc plutôt de créer des requêtes SQL pour créer les tables, on utilisera le système des migrations.

Seeders : les seeders nous permettent de remplir les tables des notre base de données. Ils sont souvent utiles lorsqu’on fait des tests.

Public

C’est dossier public est aussi important car il constitut le dossier racine de notre application laravel. Lorsqu’on créera notre serveur web, c’est ce dossier qui va constituer le dossier racine pour faire tourner notre application.

Dans ce dossier on a le fichier index.php qui est le véritable point d’entrée de laravel. Le rôle de ce fichier est de charger la partie bootstrap et d’initialiser l’application laravel.

Index.php

<?php

use Illuminate\Contracts\Http\Kernel;
use Illuminate\Http\Request;

define('LARAVEL_START', microtime(true));

/*
|--------------------------------------------------------------------------
| Check If The Application Is Under Maintenance
|--------------------------------------------------------------------------
|
| If the application is in maintenance / demo mode via the "down" command
| we will load this file so that any pre-rendered content can be shown
| instead of starting the framework, which could cause an exception.
|
*/

if (file_exists($maintenance = __DIR__.'/../storage/framework/maintenance.php')) {
    require $maintenance;
}

/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader for
| this application. We just need to utilize it! We'll simply require it
| into the script here so we don't need to manually load our classes.
|
*/

require __DIR__.'/../vendor/autoload.php';

/*
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request using
| the application's HTTP kernel. Then, we will send the response back
| to this client's browser, allowing them to enjoy our application.
|
*/

$app = require_once __DIR__.'/../bootstrap/app.php';

$kernel = $app->make(Kernel::class);

$response = $kernel->handle(
    $request = Request::capture()
)->send();

$kernel->terminate($request, $response);

Resources

Ce dossier constitue les fichiers javascript et css. C’est aussi un dossier du type public car il sera accessible par tout le monde.

Il est constitué également d’un dossier views qu’on verra plus tard. Sachez que les views seront les fichiers html de notre application.

Routes

Le dossier routes est constitué des différentes routes de notre application.

Les routes permettent de dire par exemple si je veux aller sur la page d’accueil, voila ce qu’il faut faire.

On a différentes catégories des routes en fonction de ce qu’on peut faire. Par exemple les routes pour api, web, console et channels (notifications instantanées).

Web.php

<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});

Nous verrons le fonctionnement des routes dans l’article suivant.

Storage

Le dossier storage permet de stocker les différents fichiers. Par exemple si votre application permet d’enregistrer des miniatures des articles de blog, c’est dans ce dossier qu’ils seront stockés.

Il permet aussi de stocker les caches de notre framework.

Tests

Ce dossier contient les tests fonctionnels et les tests unitaires de notre application.

Vendors

Vous le connaissez bien ; lorsqu’on travaille avec composer, c’est ce dossier vendors qui est beaucoup plus utilisés.

En fin à la racine on a des fichiers qui interviennent au bon fonctionnement de notre application.

.env

Le fichier .env est un fichier d’environnement qui nous permet de paramétrer le fonctionnement de notre application.

C’est dans ce fichier qu’on peut paramétrer l’accès à la base de données, configuration des comptes mail, le type d’application, etc.

Artisan

L’artisan est important car il sert à exécuter différentes commandes.

Par exemple si je tape php artisan

 tout simplement, la figure ci-dessous nous montre ce qui nous est retourné.

Commandes Artisan <yoastmark class=

Donc par exemple si on veut lancer notre serveur web en local, on a qu’à taper la commande

php artisan serve

Conclusion

Voilà ce qu’on avait à vous présenter dans cet article. Nous avons vu la structure de base de notre application avec le rôle de chaque partie dans la l’application.

Nous vous donnons rendez-vous dans le prochain article où nous parlerons de routes et commencerons à taper nos première lignes de code.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *