Architecture événementielle et crochets en PHP
Je prévois de travailler sur un jeu qui a un PHP back-end pour communiquer avec le référentiel de données. Je pensais à ce sujet et a conclu que le meilleur paradigme de conception à suivre pour notre jeu serait basé sur l'événement. Je suis à la recherche d'avoir un système de réalisation (similaire au système de badges de ce site) et, fondamentalement, je voudrais être en mesure de brancher ces "réalisation des contrôles" dans un certain nombre de différents événements qui se produisent dans le jeu. c'est à dire:
Quand un utilisateur effectue une action X crochet Y est tiré et que toutes les fonctions sont appelées à vérifier à l'encontre d'une réalisation exigence.
Dans la structuration de l'architecture, je vais permettre à de nouvelles réalisations à être facilement ajouté que tout ce que j'aurais à faire est d'ajouter la fonction de vérification du bon crochet et tout le reste va tomber en place.
Je ne suis pas sûr si c'est une bonne explication de ce que j'ai l'intention de faire, mais en tout cas, je suis à la recherche pour les éléments suivants:
- Bon matériel de référence sur comment code un événement piloté par application
- Extrait de Code(s) montrant comment mettre un "crochet" dans une fonction en PHP
- Extrait de Code(s) montrant comment attacher une fonction de "hook" mentionnées au point 2
J'ai quelques idées pour savoir comment accomplir 2) et 3), mais j'espérais que quelqu'un qui connaît parfaitement l'affaire pourrait faire la lumière sur les meilleures pratiques.
Vous en remercie d'avance!
source d'informationauteur MoarCodePlz
Vous devez vous connecter pour publier un commentaire.
Vous pouvez soit le faire avec "muets" rappels (Démo):
Ou de la mise en œuvre d'un modèle souvent utilisé dans les applications basées sur les événements: Modèle Observateur.
Le manuel lien ci-dessus (rappels peuvent être stockés dans une variable) et certains PHP exemples de code pour le Modèle Observateur.
Pour PHP, j'ai régulièrement intégré Symfony Événement Composant: http://components.symfony-project.org/event-dispatcher/.
Voici un petit exemple ci-dessous, que vous pouvez trouver élargi dans Symfony Recette de la section.
Ce système est intégré dans un panier d'achat pour créer un jeu comme expérience de magasinage, en accrochant les actions de l'utilisateur dans le jeu d'événements. Lorsque l'utilisateur a effectué des actions spécifiques, php tiré des événements entraînant des récompenses pour être déclenché.
Exemple 1: si l'utilisateur clique sur un bouton spécifique 10 fois, ils ont reçu une étoile.
Exemple 2: lorsque l'utilisateur se réfère à un ami et cet ami signes d'un événement est déclenché en récompensant le référant d'origine avec des points.
Découvrez CodeIgniter comme il l'a crochets intégrés.
Simplement de permettre à des crochets:
Et ensuite définir votre crochet:
Ensuite l'utiliser dans votre classe: