Maison > développement back-end > tutoriel php > Applications en temps réel avec Laravel 5.1 et diffusion d'événements

Applications en temps réel avec Laravel 5.1 et diffusion d'événements

Christopher Nolan
Libérer: 2025-02-17 11:14:10
original
403 Les gens l'ont consulté

l'événement de Laravel 5.1 La diffusion simplifie le développement d'applications en temps réel dans PHP. Cette fonctionnalité permet aux événements de publication des solutions de pubsub en temps réel comme Pusher ou Redis. Cet article démontre la création d'une application de tâches en temps réel en utilisant cette fonctionnalité.

Real-time Apps with Laravel 5.1 and Event Broadcasting

Nous transformerons une application de tâches de base en une application en temps réel.

Concepts clés:

  • Laravel 5.1 L'événement de la diffusion facilite les applications PHP en temps réel en publiant des événements à des services comme Pusher ou Redis.
  • La fonctionnalité en temps réel est obtenue en définissant les événements Laravel déclenchés lorsque les éléments sont créés, mis à jour ou supprimés. Ces événements exploitent l'interface ShouldBroadcast.
  • Pusher, un service cloud en temps réel, s'intègre de manière transparente. Vous aurez besoin d'un compte Pusher et de sa bibliothèque de serveurs. Le client JavaScript Pusher gère la gestion des événements côté client.
  • La diffusion de Laravel améliore considérablement les capacités en temps réel en PHP, auparavant plus courantes dans des plates-formes comme Node.js. L'extensibilité du cadre prend en charge d'autres solutions en temps réel via des packages de compositeurs ou des pilotes personnalisés.

Configuration:

L'approche la plus simple consiste à utiliser Homestead améliorée. Alternativement, assurez-vous que GIT et le compositeur sont installés. Clone The Starter App:

git clone https://github.com/cwt137/l51-todo-app todo-app
cd todo-app
composer install
php artisan migrate
Copier après la connexion
Copier après la connexion

Test de l'application non réel:

L'application initiale manque de mises à jour en temps réel. Ouvrez la page d'accueil en deux navigateurs. La modification de la liste de tâches dans un navigateur ne reflétera pas dans l'autre sans actualisation manuelle. Ajoutons des capacités en temps réel.

Ajout de fonctionnalités en temps réel:

Nous définirons trois événements Laravel (ItemCreated, ItemUpdated, ItemDeleted) déclenchés sur la création, la modification et la suppression des éléments.

Événements de diffusion:

Ces événements implémenteront l'interface ShouldBroadcast. Cette interface oblige une méthode broadcastOn renvoyant un tableau de canaux de diffusion. Générer les événements:

php artisan make:event ItemCreated
php artisan make:event ItemUpdated
php artisan make:event ItemDeleted
Copier après la connexion
Copier après la connexion

Remplacez le contenu de app/Events/ItemCreated.php, app/Events/ItemUpdated.php et app/Events/ItemDeleted.php par le code fourni dans l'article d'origine (trop long pour se reproduire ici). Ces événements sérialisent les données et les diffusent sur le canal itemAction.

Événements de base de données:

Nous utiliserons les événements du modèle d'Eloquent (created, updated, deleted) pour déclencher nos événements de diffusion au sein d'un fournisseur de services (app/Providers/AppServiceProvider.php). Remplacez le contenu par le code de l'article d'origine (trop long à reproduire ici).

Intégration du pousseur:

  1. Enregistrement: Créez un compte Pusher et une nouvelle application (par exemple, "Todo-App"). Notez les app_id, key et secret.

  2. Bibliothèque de serveurs PHP PHP: Installez la bibliothèque de serveur PHP Pusher:

    git clone https://github.com/cwt137/l51-todo-app todo-app
    cd todo-app
    composer install
    php artisan migrate
    Copier après la connexion
    Copier après la connexion
  3. javascript: Ajoutez le code JavaScript suivant avant la fermeture </body> balise dans resources/views/index.blade.php:

    php artisan make:event ItemCreated
    php artisan make:event ItemUpdated
    php artisan make:event ItemDeleted
    Copier après la connexion
    Copier après la connexion
  4. COMMENT DES JavaScript existant: dans public/js/app.js, commentez les appels de fonction addItem() et removeItem().

  5. Créer pusher.js: Créer public/js/pusher.js et ajouter le code JavaScript de l'article d'origine (trop long à reproduire ici). Cela souscrit au canal itemAction et gère les événements pour mettre à jour l'interface utilisateur.

Tester l'application en temps réel:

Définissez vos informations d'identification de poussoir dans votre fichier .env:

composer require 'pusher/pusher-php-server:2.2.1'
Copier après la connexion

Ouvrez deux fenêtres de navigateur. Les changements dans une fenêtre devraient se refléter instantanément dans l'autre.

Conclusion:

l'événement de Laravel 5.1 La diffusion simplifie le développement d'applications en temps réel dans PHP. Cette fonctionnalité, combinée à des services comme Pusher, offre un moyen puissant et efficace de créer des applications dynamiques et réactives. L'extensibilité du cadre permet l'intégration avec d'autres solutions en temps réel au besoin. Les FAQ de l'article d'origine sont omises ici en raison de la longueur mais couvrent des détails supplémentaires sur la diffusion des événements dans 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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal