Le résumé de Framework Laravel V9

Le résumé de Framework Laravel V9

Programmation - Jui 17, 2023

Qu'est-ce que Laravel 9

Laravel est framework MVC permettant de créer des applications web simples ou complexes à l'aide du langage de programmation PHP,

Comment créer un projet Laravel

La method 1

composer global require laravel/installer


laravel new nom-du-projet
la method 2
composer create-project --prefer-dist laravel/laravel nom-du-projet

Qu'est-ce le modèle Eloquant

Un modèle Eloquent est une classe PHP qui correspond à une table de la base de données. Il permet d'effectuer des opérations CRUD (Create, Read, Update, Delete) sur les enregistrements de la table associée.

Qu'est-ce les middlewares

Les middlewares peuvent être utilisés pour effectuer diverses tâches, telles que l'authentification, l'autorisation, la gestion des sessions, la journalisation, la validation des données, etc. Ils offrent une manière flexible d'ajouter des fonctionnalités supplémentaires aux requêtes et aux réponses.
Exmple:
1 - Créer un Middleware.
php artisan make:middleware CheckAgeMiddleware
2 - Définissez la logique du Middleware.
<?php
namespace App\Http\Middleware;
use Closure;
class CheckAgeMiddleware
{
    public function handle($request, Closure $next)
    {
        $age = $request->input('age');
        if ($age < 18) {
            return redirect('/')->with('error', 'Vous devez être majeur (18 ans ou plus).');
        }
        return $next($request);
    }
}
3 - Enregistrez le Middleware.
Pour utiliser le middleware, vous devez l'enregistrer dans le fichier app/Http/Kernel.php. 
protected $routeMiddleware = [
    // ...
    'checkAge' => \App\Http\Middleware\CheckAgeMiddleware::class,
];
4 - Appliquez le Middleware.
Route::get('/restricted', function () {
    // Logique de la route restreinte
})->middleware('checkAge');


Qu'est-ce migrate:rollback

La commande migrate:rollback est une commande utilisée dans Laravel pour annuler la dernière migration exécutée.
Exmple:
php artisan migrate:rollback

Qu'est-ce migrate:rollback --step

L'option --step utilisée avec la commande migrate:rollback dans Laravel permet de spécifier le nombre de migrations à annuler en une seule fois.
Exmple:
php artisan migrate:rollback --step=3

Qu'est-ce migrate:rollback --batch

L'option --batch utilisée avec la commande migrate:rollback dans Laravel permet d'annuler toutes les migrations d'un lot spécifique.
Exmple:
php artisan migrate:rollback --batch=2

Qu'est-ce migrate:rollback --pretend

L'option --pretend utilisée avec la commande migrate:rollback dans Laravel permet d'afficher les migrations qui seraient annulées sans effectuer réellement les modifications dans la base de données.

php artisan migrate:rollback --pretend

Qu'est-ce migrate:reset

La commande migrate:reset est utilisée pour annuler toutes les migrations et réinitialiser la structure de la base de données.

Qu'est-ce migrate:fresh

migrate:fresh: supprimer toutes les tables de la base de données et exécute toutes les migrations à partir de zéro.

Qu'est-ce Route::resource()

La méthode Route::resource()  est utilisée pour générer automatiquement les routes pour les opérations CRUD (Create, Read, Update, Delete) d'une ressource. Elle permet de définir rapidement toutes les routes nécessaires pour interagir avec un contrôleur de ressources.

Le résumé de Framework Laravel V9

 Les relations de modèle sont utilisées pour définir les relations entre les différents modèles

  1. Relation "One-to-One" (Un-à-Un) :

    • hasOne: Définit une relation où un modèle possède un autre modèle.
    • belongsTo: Définit une relation où un modèle appartient à un autre modèle.
  2. Relation "One-to-Many" (Un-à-Plusieurs) :

    • hasMany: Définit une relation où un modèle possède plusieurs instances d'un autre modèle.
    • belongsTo: Définit une relation où un modèle appartient à un autre modèle.
  3. Relation "Many-to-Many" (Plusieurs-à-Plusieurs) :

    • belongsToMany: Définit une relation où plusieurs modèles sont liés à plusieurs instances d'un autre modèle.
  4. Relation "Has-One-Through" (Un-a-Un-À-Travers) :

    • hasOneThrough: Définit une relation où un modèle possède un autre modèle à travers une table intermédiaire.
  5. Relation "Has-Many-Through" (Un-a-Plusieurs-À-Travers) :

    • hasManyThrough: Définit une relation où un modèle possède plusieurs instances d'un autre modèle à travers une table intermédiaire.

Les types de colonnes couramment utilisés dans les migrations :

  • bigIncrements('column_name') : Crée une colonne d'incrémentation de type big integer (pour les clés primaires).
  • bigInteger('column_name') : Crée une colonne de type big integer.
  • binary('column_name') : Crée une colonne de type binaire.
  • boolean('column_name') : Crée une colonne de type booléen.
  • char('column_name', length) : Crée une colonne de type caractère avec une longueur spécifiée.
  • date('column_name') : Crée une colonne de type date.
  • dateTime('column_name') : Crée une colonne de type date et heure.
  • decimal('column_name', total_digits, decimal_digits) : Crée une colonne de type décimal avec un nombre total de chiffres et un nombre de chiffres décimaux spécifiés.
  • double('column_name', total_digits, decimal_digits) : Crée une colonne de type double avec un nombre total de chiffres et un nombre de chiffres décimaux spécifiés.
  • enum('column_name', ['value1', 'value2', ...]) : Crée une colonne de type enum avec les valeurs spécifiées.
  • float('column_name', total_digits, decimal_digits) : Crée une colonne de type float avec un nombre total de chiffres et un nombre de chiffres décimaux spécifiés.
  • integer('column_name') : Crée une colonne de type integer.
  • json('column_name') : Crée une colonne de type JSON.
  • string('column_name', length) : Crée une colonne de type chaîne de caractères avec une longueur spécifiée.
  • text('column_name') : Crée une colonne de type texte.
  • time('column_name') : Crée une colonne de type heure.
  • timestamp('column_name') : Crée une colonne de type timestamp.

Example:

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateExampleTable extends Migration
{
    public function up()
    {
        Schema::create('examples', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->integer('age')->nullable();
            $table->boolean('is_active')->default(true);
            $table->text('description')->nullable();
            $table->timestamps();
        });
    }
    public function down()
    {
        Schema::dropIfExists('examples');
    }
}

Qu'est-ce migrate up() et down()

up(): La méthode up() est utilisée pour définir les actions à effectuer lors de l'exécution de la migration. Cela inclut généralement la création de tables, l'ajout de colonnes, l'ajout d'index, la création de relations, etc.

down(): La méthode down() est utilisée pour définir les actions à effectuer lors de l'annulation de la migration. 

Qu'est-ce la méthode dropIfExists() dans down()

La méthode dropIfExists() est une méthode fournie par Laravel qui est utilisée dans la méthode down() des migrations pour supprimer une table de la base de données si elle existe.

La liste des 10 validations importantes fournies par Laravel pour valider les données

  1. required: La validation required est utilisée pour s'assurer qu'un champ est présent et non vide.

  2. numeric: La validation numeric est utilisée pour vérifier si une valeur est un nombre.

  3. email: La validation email est utilisée pour valider si une valeur est une adresse e-mail valide.

  4. unique: La validation unique est utilisée pour vérifier si une valeur est unique dans une table donnée.

  5. min: La validation min est utilisée pour vérifier si une valeur numérique atteint ou dépasse une valeur minimale spécifiée.

  6. max: La validation max est utilisée pour vérifier si une valeur numérique est inférieure ou égale à une valeur maximale spécifiée.

  7. string: La validation string est utilisée pour s'assurer que la valeur est une chaîne de caractères.

  8. in: La validation in est utilisée pour vérifier si une valeur est présente dans un ensemble de valeurs spécifiées.

  9. date: La validation date est utilisée pour vérifier si une valeur est une date valide.

  10. confirmed: La validation confirmed est utilisée pour valider si deux champs de confirmation correspondent, comme la confirmation d'un mot de passe.

Example:

$request->validate([
    'name' => 'required|string',
    'email' => 'required|email|unique:users',
    'age' => 'numeric|min:18',
    'password' => 'required|confirmed',
]);

Qu'est-ce la méthode auth()

La fonction auth() permet d'interagir avec le système d'authentification de l'application. Elle facilite l'accès aux fonctionnalités d'authentification, d'autorisation et de gestion des utilisateurs.

Qu'est-ce la class Auth.

La classe Auth est une classe de façade (facade class) dans Laravel qui fournit une interface simplifiée pour interagir avec le système d'authentification de l'application.

Qu'est-ce la méthode Auth() class.

@auth et @guest sont des directives Blade intégrées dans Laravel qui permettent d'afficher du contenu conditionnel en fonction de l'état d'authentification de l'utilisateur.

La directive @auth: est utilisée pour afficher du contenu qui ne doit être visible que si l'utilisateur est authentifié.

La directive @guest: est utilisée pour afficher du contenu qui doit être visible uniquement si l'utilisateur n'est pas authentifié.

Qu'est-ce @csrf

La directive @csrf est une directive Blade qui génère un jeton CSRF pour protéger vos formulaires contre les attaques de falsification de requêtes intersites.

Qu'est-ce la function isset()

La fonction isset() est utilisée pour vérifier si une variable est définie et si sa valeur n'est pas nulle (NULL).

Qu'est-ce ORM (Object Relatioal Mapping)

ORM signifie "Object-Relational Mapping"  Il s'agit d'un concept de programmation qui permet de mapper les objets d'une application à une base de données relationnelle.

Qu'est-ce CMS (Content Management System)

CMS est l'acronyme de "Content Management System" Il s'agit d'une application logicielle utilisée pour créer, gérer et publier du contenu sur le web de manière intuitive et conviviale.

Comment télécharger un fichier sur Laravel

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FileController extends Controller
{
    public function upload(Request $request)
    {
        if ($request->hasFile('file')) {
            $file = $request->file('file');
            $path = $file->store('uploads');
            $url = Storage::url($path);
            
            return "Fichier téléchargé avec succès!";
        }
        return "Aucun fichier sélectionné.";
    }
}

La liste de directives Blade importantes

  1. @extends : Indique que la vue actuelle hérite d'un modèle parent.

  2. @section : Définit une section dans le modèle parent ou la vue enfant.

  3. @yield : Affiche le contenu d'une section définie dans le modèle parent.

  4. @include : Inclut une autre vue Blade.

  5. @if, @elseif, @else : Permettent d'effectuer des opérations conditionnelles.

  6. @unless : Effectue une opération conditionnelle inverse.

  7. @foreach : Itère sur une collection ou un tableau.

  8. @forelse : Itère sur une collection ou un tableau, avec une clause pour les cas où la collection est vide.

  9. @empty : Indique une action à effectuer si une collection est vide.

  10. @while : Effectue une boucle tant qu'une condition est vraie.

  11. @for : Effectue une boucle pour un nombre défini d'itérations.

  12. @break : Interrompt une boucle prématurément.

  13. @continue : Passe à l'itération suivante d'une boucle.

  14. @php : Permet d'inclure du code PHP brut dans une vue Blade.

  15. @endphp : Indique la fin d'un bloc de code PHP brut.

  16. @auth, @guest : Vérifie si un utilisateur est authentifié ou invité.

  17. @can, @cannot : Vérifie les autorisations de l'utilisateur.

  18. @isset, @empty, @hasSection : Vérifie si une variable, une collection, une section est définie ou vide.

  19. @push, @prepend, @stack : Gèrent les piles de contenu pour le modèle parent.

  20. @error, @enderror : Affiche les erreurs de validation pour un champ spécifique.

  21. @csrf : Insère un jeton CSRF pour protéger les formulaires contre les attaques CSRF.

Les composants Laravel

Les composants Laravel sont des éléments d'interface utilisateur réutilisables dans le moteur de templating Blade de Laravel. 

Example

1 - Définissez le composant

<button {{ $attributes->merge(['class' => 'btn']) }}>
    {{ $slot }}
</button>
2 - Définissez le composant

<x-bouton class="btn-primary">
    Cliquez ici !
</x-bouton>

Les commads important de laravel 9

  1. php artisan serve: Démarre le serveur de développement intégré de Laravel.
  2. php artisan make:controller NomDuController: Crée un nouveau contrôleur.
  3. php artisan make:model NomDuModele: Crée un nouveau modèle.
  4. php artisan make:migration nom_de_la_migration: Crée un nouveau fichier de migration.
  5. php artisan migrate: Exécute toutes les migrations en attente.
  6. php artisan migrate:rollback: Annule la dernière migration exécutée.
  7. php artisan make:seeder NomDuSeeder: Crée un nouveau fichier de classe de Seeder.
  8. php artisan db:seed: Exécute tous les seeders enregistrés.
  9. php artisan route:list: Affiche la liste de toutes les routes définies dans votre application.
  10. php artisan make:middleware NomDuMiddleware: Crée un nouveau middleware.
  11. php artisan make:command NomDeLaCommande: Crée une nouvelle commande artisan.
  12. php artisan cache:clear: Efface tous les fichiers en cache.
  13. php artisan make:migration create_table_name --create=table_name: Crée une nouvelle migration pour créer une nouvelle table dans la base de données.
  14. php artisan migrate:refresh: Réinitialise et réexécute toutes les migrations.
  15. php artisan migrate:status: Affiche l'état des migrations.
  16. php artisan storage:link: Crée le lien symbolique pour le dossier de stockage vers le dossier public.
  17. php artisan make:factory NomDuModelFactory: Crée un nouveau fichier de factory pour générer des données de test.
  18. php artisan tinker: Lance l'interpréteur REPL interactif de Laravel (basé sur PsySH) pour tester des expressions et interagir avec l'application.
  19. php artisan route:cache: Génère un fichier de cache pour accélérer le processus de résolution des routes.
  20. php artisan optimize: Compile tous les fichiers PHP de l'application en un seul fichier pour une meilleure performance.
  21. php artisan config:cache: Génère un fichier de cache pour accélérer le chargement de la configuration.
  22. php artisan make:provider NomDuServiceProvider: Crée un nouveau fichier de service provider.
  23. php artisan make:middleware NomDuMiddleware --api: Crée un middleware spécifique à une API.
  24. php artisan queue:work: Démarre le worker de la file d'attente pour traiter les travaux en arrière-plan.
  25. php artisan make:policy NomDuPolicy --model=NomDuModel: Crée une nouvelle politique d'autorisation pour un modèle spécifique.
Previous Next
Copyrights
We respect the property rights of others, and are always careful not to infringe on their rights, so authors and publishing houses have the right to demand that an article or book download link be removed from the site. If you find an article or book of yours and do not agree to the posting of a download link, or you have a suggestion or complaint, write to us through the Contact Us .
Read More