Table des matières
Quelle est la différence entre les contrats et les façades dans laravel
Maison cadre php Laravel Quelle est la différence entre contrat et façade dans Laravel

Quelle est la différence entre contrat et façade dans Laravel

Feb 15, 2022 pm 04:29 PM
laravel

Différence : 1. Le contrat fait référence à une série d'interfaces fournies par le framework qui définissent les services de base, tandis que la façade fournit des interfaces statiques pour les classes du conteneur de services IoC 2. Le contrat peut être considéré comme l'interface de définition de méthode ; de la fonction framework, qui stocke de grandes méthodes Most, et la façade fournit des méthodes, fournit des appels statiques et n'a pas besoin d'injecter d'interfaces.

Quelle est la différence entre contrat et façade dans Laravel

L'environnement d'exploitation de ce tutoriel : système Windows 10, version Laravel 6, ordinateur DELL G3.

Quelle est la différence entre les contrats et les façades dans laravel

Introduction

Les contrats de Laravel sont un ensemble d'interfaces fournies par le framework et définissent les services de base. Par exemple, le contrat illustreContractsQueueQueue définit les méthodes requises pour mettre en file d'attente une tâche, tandis que le contrat illustreContractsMailMailer définit les méthodes requises pour envoyer du courrier. Et les contrats sont aussi appelés contrats

Dans notre étude précédente, nous avons appris de nombreuses fonctions auxiliaires et méthodes simples fournies par la façade Façades, qui peuvent implémenter des méthodes sans indications de type. Dans la plupart des cas, chaque façade a des méthodes de contrat correspondantes, contrairement aux façades. , les contrats vous permettent d'exposer les dépendances pour les définitions de classe.

Quand utiliser les contrats

Comme indiqué ailleurs, de nombreuses décisions concernant l'utilisation de contrats ou de façades dépendront de vos préférences personnelles et des préférences de l'équipe de développement. Les contrats et les façades peuvent être utilisés pour créer des applications Laravel puissantes et bien testées. Tant que vous vous concentrez sur le fait qu'une classe ne doit avoir qu'une seule responsabilité, vous constaterez que la différence réelle entre l'utilisation de contrats ou de façades est en réalité très faible.

Comment utiliser le contrat

Alors, comment mettre en œuvre le contrat ? C'est en fait très simple.

De nombreuses classes dans Laravel sont résolues via le conteneur de services, notamment les contrôleurs, les écouteurs d'événements, les middlewares, les tâches de file d'attente et même les fermetures de routage. Par conséquent, pour implémenter le contrat, il vous suffit de « taper un indice » sur l'interface dans le constructeur de la classe résolue.

Par exemple, consultez cet écouteur d'événement :

<?php
namespace App\Listeners;
use App\Events\OrderWasPlaced;
use App\Models\User;
use Illuminate\Contracts\Redis\Factory;
class CacheOrderInformation
{
    /**
     * Redis 工厂实现
     */
    protected $redis;
    /**
     * 创建一个事件处理实例
     *
     * @param  Factory  $redis
     * @return void
     */
    public function __construct(Factory $redis)
    {
        $this->redis = $redis;
    }
    /**
     * 处理事件
     *
     * @param  OrderWasPlaced  $event
     * @return void
     */
    public function handle(OrderWasPlaced $event)
    {
        //
    }
}
Copier après la connexion

La différence entre contrat et façade

Le contrat fait en fait référence à une série d'interfaces fournies par le framework qui définissent les services de base. Le mot-clé est cette interface. ci-dessus, vous pouvez comprendre quelles fonctions cette interface fournit. Nous pouvons considérer le contrat comme l'interface de définition de méthode de la fonction framework. Cette interface stocke la plupart des méthodes que nous devons utiliser

La façade fournit également des méthodes. nous voulons utiliser la méthode d'interface, nous devons injecter l'interface correspondante, ce qui est très gênant, donc la façade est née, fournissant des appels statiques et pas besoin d'injecter l'interface.

[Recommandations associées : tutoriel vidéo laravel]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment obtenir le code de retour lorsque l'envoi par e-mail échoue à Laravel? Comment obtenir le code de retour lorsque l'envoi par e-mail échoue à Laravel? Apr 01, 2025 pm 02:45 PM

Méthode pour obtenir le code de retour lorsque l'envoi par e-mail de Laravel échoue. Lorsque vous utilisez Laravel pour développer des applications, vous rencontrez souvent des situations où vous devez envoyer des codes de vérification. Et en réalité ...

La tâche de calendrier Laravel n'est pas exécutée: que dois-je faire si la tâche n'est pas en cours d'exécution après le calendrier: Exécuter la commande? La tâche de calendrier Laravel n'est pas exécutée: que dois-je faire si la tâche n'est pas en cours d'exécution après le calendrier: Exécuter la commande? Mar 31, 2025 pm 11:24 PM

Laravel Schedule Tâche d'exécution de dépannage non réactif Lorsque vous utilisez la planification des tâches de calendrier de Laravel, de nombreux développeurs rencontreront ce problème: Schedule: Exécuter ...

Dans Laravel, comment gérer la situation où les codes de vérification ne sont pas envoyés par e-mail? Dans Laravel, comment gérer la situation où les codes de vérification ne sont pas envoyés par e-mail? Mar 31, 2025 pm 11:48 PM

La méthode de traitement de l'échec de l'e-mail de Laravel à envoyer le code de vérification est d'utiliser Laravel ...

Comment implémenter la fonction de table personnalisée de clic pour ajouter des données dans l'administrateur DCAT? Comment implémenter la fonction de table personnalisée de clic pour ajouter des données dans l'administrateur DCAT? Apr 01, 2025 am 07:09 AM

Comment implémenter la fonction du tableau de Cliquez sur personnalisé pour ajouter des données dans DCATADMIN (Laravel-Admin) lors de l'utilisation de DCAT ...

Partage de connexion Laravel Redis: pourquoi la méthode de sélection affecte-t-elle d'autres connexions? Partage de connexion Laravel Redis: pourquoi la méthode de sélection affecte-t-elle d'autres connexions? Apr 01, 2025 am 07:45 AM

L'impact du partage des connexions redis dans Laravel Framework et sélectionnez Méthodes Lors de l'utilisation de Laravel Framework et Redis, les développeurs peuvent rencontrer un problème: grâce à la configuration ...

Laravel Multi-Lenant Extension Stancl / Tenancy: Comment personnaliser l'adresse hôte d'une connexion de base de données de locataire? Laravel Multi-Lenant Extension Stancl / Tenancy: Comment personnaliser l'adresse hôte d'une connexion de base de données de locataire? Apr 01, 2025 am 09:09 AM

Connexion de la base de données des locataires personnalisés dans le package d'extension multi-locataire Laravel Stancl / location Lors de la construction d'applications multi-locataires à l'aide du package d'extension multi-locataire Laravel Stancl / location, ...

Laravel Eloquent Orm dans Bangla Partial Model Search) Laravel Eloquent Orm dans Bangla Partial Model Search) Apr 08, 2025 pm 02:06 PM

Laravelelognent Model Retrieval: Faconttement l'obtention de données de base de données Eloquentorm fournit un moyen concis et facile à comprendre pour faire fonctionner la base de données. Cet article présentera en détail diverses techniques de recherche de modèles éloquentes pour vous aider à obtenir efficacement les données de la base de données. 1. Obtenez tous les enregistrements. Utilisez la méthode All () pour obtenir tous les enregistrements dans la table de base de données: usApp \ Modèles \ Post; $ poters = post :: all (); Cela rendra une collection. Vous pouvez accéder aux données à l'aide de Foreach Loop ou d'autres méthodes de collecte: ForEach ($ PostsAs $ POST) {echo $ post->

Géospatial de Laravel: optimisation des cartes interactives et de grandes quantités de données Géospatial de Laravel: optimisation des cartes interactives et de grandes quantités de données Apr 08, 2025 pm 12:24 PM

Traiter efficacement 7 millions d'enregistrements et créer des cartes interactives avec la technologie géospatiale. Cet article explore comment traiter efficacement plus de 7 millions d'enregistrements en utilisant Laravel et MySQL et les convertir en visualisations de cartes interactives. Exigences initiales du projet de défi: extraire des informations précieuses en utilisant 7 millions d'enregistrements dans la base de données MySQL. Beaucoup de gens considèrent d'abord les langages de programmation, mais ignorent la base de données elle-même: peut-il répondre aux besoins? La migration des données ou l'ajustement structurel est-il requis? MySQL peut-il résister à une charge de données aussi importante? Analyse préliminaire: les filtres et les propriétés clés doivent être identifiés. Après analyse, il a été constaté que seuls quelques attributs étaient liés à la solution. Nous avons vérifié la faisabilité du filtre et établi certaines restrictions pour optimiser la recherche. Recherche de cartes basée sur la ville

See all articles