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é.
Nous transformerons une application de tâches de base en une application en temps réel.
Concepts clés:
ShouldBroadcast
. 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
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
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:
Enregistrement: Créez un compte Pusher et une nouvelle application (par exemple, "Todo-App"). Notez les app_id
, key
et secret
.
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
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
COMMENT DES JavaScript existant: dans public/js/app.js
, commentez les appels de fonction addItem()
et removeItem()
.
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'
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!