web-dev-qa-db-fra.com

Principe de responsabilité unique et WP Des classes

Je travaille toujours à travers OOP et des principes solides. J'ai de la difficulté à éviter de nombreux appels new SomeClass(); ou à les ajouter à un crochet d'action (add_action( 'init', array( 'SomeClass', 'get_instance' )). Exemple: j'ai un contrôleur de publications que j'utilise pour gérer tout ce qui a trait aux publications: création, suppression, modification de son statut via ajax, etc. requêtes, etc. Existe-t-il un meilleur moyen d'instancier ces classes que new/add_action? Je pense qu'il y aura un nombre excessif de cours et d'instanciations de cours et que quelqu'un aurait déjà proposé quelque chose. Suis-je fou?

5
Nathaniel Schweinberg

WordPress lui-même n'est pas très orienté objet - il a des objets (comme WP_User, par exemple), mais la plupart des interactions avec l'API principale ont lieu via des appels de fonction simples. Cela dépend aussi largement de l'état global, bien qu'il gère très bien cela par le biais d'abstractions d'actions et de filtres.

D'après mon expérience, il existe un compromis entre s'en tenir aux appels de fonction Vanilla WP et aux classes de construction. Allez trop loin vers OO et vous finirez par réimplémenter des choses qui sont déjà très pratiques. C’est presque certainement la voie que vous empruntez si vous instanciez une nouvelle classe pour la création ultérieure.

Mais si vous faites vraiment autre chose - une interface API, un système de comptes compliqué, des paiements, etc. - vos points de contact avec WP seront minimes et vous pourrez être aussi SOLID. comme vous le souhaitez dans le domaine du problème auquel vous faites face.

5
djb