Devriez – vous utiliser l’interface objet pour le développement de WordPress?
Interface avec Stripe, paypal ou tout autre processeur de paiement, et je sais que cette méthode sera utilisée pour activer le paiement. Même si les paiements sont traités différemment, cela n’a pas d’importance parce que l’interface ne décrit pas comment fonctionne la méthode, mais plutôt quelle méthode fait quoi.
Lorsque vous créez une méthode dans une interface, le corps n’est pas ajouté à la fonction. Au lieu de cela, définissez son nom et ses paramètres. Les classes qui implémentent cette interface doivent utiliser exactement les mêmes paramètres, y compris les valeurs par défaut définies par l’interface. Les méthodes de l’interface peuvent utiliser des conseils de type. Dans ce cas, les classes qui les mettent en œuvre doivent utiliser les mêmes recommandations de type. Par exemple, nous avons une interface dans le formulaire Caldera pour implémenter le processeur de module. Voir la première méthode dans cette interface:
Processeur pré _ de fonction commune (array $config, Array $form, proccesid); La classe qui implémente cette interface doit utiliser un tableau passé à ses deux premiers arguments. Si la classe ne peut pas être écrite de cette façon, cette interface ne doit pas être utilisée. Si vous regardez le code source de l’interface, vous remarquerez qu’il y a une méthode appelée champs. Renvoie un tableau, mais comme PHP5 ne renvoie pas de déclaration de type, c’est une convention, pas une règle. Si j’écris cette interface en sachant qu’elle n’est utilisée qu’en PHP 7, j’ajoute le type de retour suivant:
Champ de fonction commun (): Tableau; Les interfaces telles que les classes peuvent être combinées avec d’autres interfaces et hériter de leurs méthodes. C’est bien parce qu’il vous permet de créer des interfaces simples et de les combiner pour des projets plus vastes. Plus tôt, je vous ai montré l’interface Caldera form pour le processeur de module. Nous fournissons une autre interface spécifique pour le processeur qui ajoute des abonnés aux communiqués de presse.
Cette interface hérite de l’interface du processeur principal, mais ajoute une méthode supplémentaire. Les gestionnaires de communiqués de presse ont besoin d’un traitement de base et d’un abonnement.
L’héritage d’interface vous permet de combiner plusieurs interfaces sans copier le Code. Dans certains cas. En PHP 5.3.9 ou plus tard, une classe peut également implémenter plusieurs interfaces. Cette syntaxe utilise des virgules entre les noms d’interface. Voici un exemple de déclaration de classe de Contrôleur pour mon routeur Symfony récemment utilisé: l’utilisateur de classe implémente l’interface fournisseur de services, Bootableprovider interface {les utilisateurs de ma classe doivent suivre les règles pour ces deux interfaces. La création d’une interface qui étend ces deux interfaces est confuse et n’offre aucun avantage réel, c’est pourquoi j’utilise seulement la syntaxe des virgules pour implémenter les deux interfaces.
Jusqu’à présent, nous n’avons discuté que des méthodes dans une seule interface. L’interface peut également définir des constantes de classe. Notez que lorsque vous implémentez ou héritez d’une interface, vous ne pouvez pas changer la valeur de ses constantes. Les constantes d’interface ne sont pas des caractéristiques que j’utilise souvent. Le but des constantes d’interface est de définir le Slug du plug – in. Les développeurs WordPress, y compris moi – même, utilisent souvent l’héritage de classe pour définir l’attribut plug – in Slug une fois et l’utiliser comme une poignée JavaScript ou CSS et un Slug de page de menu.
Il est bon de réduire la duplication du Code et de n’avoir qu’un seul endroit où faire des changements. Cependant, ce n’est pas une raison importante d’étendre la classe de base. L’interface peut résoudre le même problème sans suivre la hiérarchie d’héritage de classe, sinon elle n’est pas nécessaire. Exemple: administrateur d’interface {
Constante Slug = ‘mio plug – in’
Exécution