WordPress pour le développement d'applications Web le modèle conceptuel

Avec des personnes qui commencent à réaliser le potentiel de WordPress en tant que fondement d’application plutôt qu’un système de gestion de contenu ou une plate-forme de blogging, cette série se concentre sur la façon dont WordPress peut être utilisé pour de tels projets..

L'un des points les plus importants à noter est que WordPress n'est pas censé être la solution définitive pour la création d'applications Web. En fait, je ne pense pas tout fondation ou cadre est censé être la solution définitive.

Au lieu de cela, nous avons un certain nombre de choix différents, qui se prêtent tous à de meilleures situations que d’autres, et WordPress n’est pas différent. Tout au long de cette série, nous allons continuer à regarder comment les applications Web peuvent être construites avec WordPress et quelles situations se prêtent le mieux à la base. Cependant, nous devons poursuivre notre discussion sur le fonctionnement de WordPress pour pouvoir ensuite commencer à parler de la façon de créer des applications par dessus..

Dans l'article précédent, nous avions expliqué combien de frameworks offraient une approche de développement MVC, mais nous avions également examiné le modèle événementiel de WordPress. Dans cet article, nous allons examiner de plus près le paradigme événementiel utilisé par WordPress et pourquoi cela est important..

La vérité est que beaucoup de gens connaissent ce paradigme et ne connaissent tout simplement pas les conventions de dénomination. À la fin de cet article, nous devrions avoir une idée claire de ce qu'est la programmation événementielle, de son fonctionnement, de sa mise en œuvre dans WordPress et de la manière dont nous devons réfléchir à cela à partir d'autres modèles tels que Model-View. -Manette.


Programmation événementielle

Dans le dernier post, nous avons résumé la programmation événementielle avec l’idée suivante:

Au lieu de cela, la programmation événementielle part du principe que "quelque chose est comme ce qui s'est passé". D'où le nom de actes dans le jargon WordPress (bien sûr, nous avons aussi des filtres, mais je couvrirai ceux-ci dans un instant).

Et c'est très bien pour une définition de travail des événements, en particulier à un niveau élevé. Toutefois, si vous souhaitez examiner de plus près ce à quoi cela ressemble d'un point de vue pratique, c'est-à-dire comment WordPress l'implémente, alors la meilleure chose que vous puissiez faire est de comprendre. événements.

Mais plus encore que cela, il est important de comprendre le cycle de vie d'une page WordPress, l'endroit où les événements se produisent et comment nous, en tant que développeurs, pouvons les intégrer pour effectuer certaines tâches..


Comprendre les événements

Comme nous l'avons déjà mentionné, dans la programmation événementielle, l'idée d'événements est simplement que quelque chose est arrivé. Nous continuons à le réitérer, mais qu'est-ce que cela signifie vraiment?

Dans le contexte d'un chargement de page unique, un certain nombre de choses se produisent:

  • JavaScript et les feuilles de style sont récupérées
  • Les requêtes sont exécutées sur la base de données pour récupérer des données
  • Les informations de la base de données sont rendues dans le contexte du balisage
  • La page est présentée à l'utilisateur
  • … etc

Tous ces éléments peuvent être considérés comme des événements, mais chacun d’entre eux est constitué de son propre ensemble d’événements plus petits - c’est-à-dire que vous pouvez obtenir vraiment détaillé quand il se passe quelque chose.

Prenons, par exemple, l’idée de rendre une demande classique destinée au public pour une page utilisant WordPress. Si vous examinez le document Codex associé, vous remarquerez qu’il ya environ 50 actions qui se produisent, et cela ne se produit pas. ne pas inclure des actions spécifiques au post ou à la page, soit.

Chacune de ces actions peut être considérée comme un événement et, dans le monde de la programmation événementielle, les événements sont généralement exposés de manière à nous permettre de les capturer et de manipuler les informations avant qu'elles ne soient rendues au client..

D'où le nom d'hameçons.

Bien entendu, dans WordPress, il existe deux types de crochets: Actions et Filtres. Bien que cette série ne soit pas un tutoriel solide sur chacun d’eux, elle est Il est important de reconnaître la différence qui existe entre elles en ce qui concerne l'utilisation de WordPress..

actes

Les actions sont un type de crochet qui signifie que quelque chose est arrivé, et quand cette quelque chose se produit, nous avons la possibilité d’enregistrer notre propre fonctionnalité de manière à pouvoir injecter notre propre code (ou même empêcher certaines choses de se produire).

Comme je l'ai résumé dans ma série sur Actions et Filtres:

Les actions sont des événements du cycle de vie d'une page WordPress lorsque certaines choses se sont produites: certaines ressources sont chargées, certaines installations sont disponibles et, en fonction du délai de l'action, certaines choses doivent encore être chargées..

Il est important de comprendre les actions disponibles pour que vous sachiez quel est le meilleur moment pour vous connecter à un événement donné, de manière à ne pas entraver les performances de la page, car vous risqueriez de corrompre d'autres données qui arrivent en aval ou de rester correctement. traiter l'information au bon moment et au bon endroit.

Les filtres

Filtre, par contre, un type de crochet qui nous permet de recevoir une donnée donnée, de la manipuler, puis de la renvoyer à WordPress avant de la restituer au navigateur..

Pour l'exemple, si vous regardez le contenu filtre, alors vous remarquerez que si vous associez une fonction à cette action particulière, le contenu sera attribué à votre fonction. Cela signifie que vous pourrez manipuler le contenu en y insérant des informations, en en supprimant des informations, ou quelque chose de similaire, avant de les restituer à WordPress afin de les restituer au navigateur..

De même, j'ai résumé les filtres de ma série sur Actions et Filtres comme suit:

Les filtres sont des fonctions par lesquelles WordPress transmet des données à certains moments du cycle de vie d'une page. Ils sont principalement responsables de l’interception, de la gestion et de la restitution des données avant de les restituer au navigateur ou de leur sauvegarde dans la base de données..

Donc, avec tout cela dit, les actions et les filtres sont tous les deux types d'événements qui se produisent dans le cycle de vie WordPress qui nous permettent de crochet en eux et insérez notre propre code pour l'exécution avant de le rendre au navigateur.

En bref, le terme "crochets" est un terme général qui désigne à la fois des actions et des filtres qui servent chacun un but différent..


Analogus à MVC?

Maintenant, l’une des choses les plus courantes que j’ai vue de personnes venant de milieux différents tels que Rails, CakePHP, ASP.NET ou d’autres frameworks MVC, est de savoir comment mapper leur modèle conceptuel de MVC à l’événement. modèle piloté de WordPress.

J'entends par là qu'ils essaient de trouver des analogies avec les modèles, les vues et les contrôleurs dans le paradigme des événements. Par exemple, certains peuvent essayer de faire ce qui suit:

  • "Si vues sont destinés à la présentation de données, alors c'est sûrement ce que des modèles sont pour dans WordPress. " Eh bien, oui, dans une certaine mesure, mais les modèles sont également affectés par divers crochets et appellent certaines fonctions.
  • "Si crochets sont utilisés pour orchestrer des données entre la base de données et les vues, ils ressemblent alors à des contrôleurs. " En quelque sorte, mais ils peuvent aussi représenter une logique spécifique aux données, similaire à un modèle, et ils peuvent également être utilisés simplement comme aides pour formater des informations qui s'apparentent davantage à des aides qu'à des contrôleurs réels..
  • "Mais si les modèles, ou les vues, peuvent appeler les contrôleurs, ou les points d'ancrage, alors où reste le modèle?" Exactement, vous pouvez rationaliser tout ce que vous voulez et tous les bons, mais la vérité est que WordPress n’est pas MVC.

À cette fin, je recommande fortement d'éviter de penser à WordPress dans le contexte d'un autre modèle. Il a son propre modèle. Pensez-y en ces termes.

Il ne s'agit pas de moderniser!

En bref, utiliser WordPress à partir d'un autre cadre utilisant un autre modèle ou un autre paradigme est acceptable, mais il ne s'agit pas de faire en sorte que WordPress corresponde à votre expérience précédente..

Vous ne pouvez pas adapter un modèle de conception à un autre et espérer obtenir des résultats de grande qualité.

Le logiciel ne fonctionne pas comme ça.

Au lieu de cela, comme vous le faites avec d'autres cadres, vous doit Pensez en termes de fonctionnement de WordPress afin de construire correctement des éléments sur - et pour - WordPress. Plus tard dans la série, nous verrons pourquoi WordPress constitue une option solide pour les applications Web, mais auparavant, je pense qu'il est important de comprendre le modèle implémenté par WordPress et comment en tirer le meilleur parti..


Exemples pratiques d'événements

Dans le prochain article, nous examinerons quelques exemples de la manière dont nous pouvons utiliser les événements fournis par WordPress. Il s’agira d’une très bonne introduction et les développeurs WordPress les plus expérimentés connaîtront probablement déjà nombre d’entre eux; Cependant, il fournira un ensemble d'exemples solides sur la manière dont les actions et les filtres - et donc les événements - fonctionnent dans WordPress..

Après cela, nous poursuivrons notre discussion sur les fonctionnalités offertes par WordPress pour la création d’applications Web..