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 nrsquoa pas drsquoimportance parce que lrsquointerface ne décrit pas comment fonctionne la méthode, mais plutôt quelle méthode fait quoi.
Lorsque créez une méthode dans une interface, le corps nrsquoest 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 lrsquointerface. Les méthodes de lrsquointerface 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. la classe ne peut pas être écrite de cette façon, cette interface ne doit pas être utilisée. regardez le code source de lrsquointerface, remarquerez qursquoil y a une méthode appelée champs. Renvoie un tableau, mais comme PHP5 ne renvoie pas de déclaration de type, crsquoest une convention, pas une règle. jrsquoécris cette interface en sachant qursquoelle nrsquoest utilisée qursquoen PHP 7, jrsquoajoute le type de retour suivant:
Champ de fonction commun (): Tableau Les interfaces telles que les classes peuvent être combinées avec drsquoautres interfaces et hériter de leurs méthodes. Crsquoest bien parce qursquoil permet de créer des interfaces simples et de les combiner pour des projets plus vastes. Plus tôt, je ai montré lrsquointerface 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 lrsquointerface du processeur principal, mais ajoute une méthode supplémentaire. Les gestionnaires de communiqués de presse ont besoin drsquoun traitement de base et drsquoun abonnement.
Lrsquohéritage drsquointerface 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 drsquointerface. Voici un exemple de déclaration de classe de Contrôleur pour mon routeur Symfony récemment utilisé: lrsquoutilisateur de classe implémente lrsquointerface fournisseur de services, Bootableprovider interface {les utilisateurs de ma classe doivent suivre les règles pour ces deux interfaces. La création drsquoune interface qui étend ces deux interfaces est confuse et nrsquooffre aucun avantage réel, crsquoest pourquoi jrsquoutilise seulement la syntaxe des virgules pour implémenter les deux interfaces.
Jusqursquoà présent, nous nrsquoavons discuté que des méthodes dans une seule interface. Lrsquointerface peut également définir des constantes de classe. Notez que lorsque implémentez ou héritez drsquoune interface, ne pouvez pas changer la valeur de ses constantes. Les constantes drsquointerface ne sont pas des caractéristiques que jrsquoutilise souvent. Le but des constantes drsquointerface 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 nrsquoavoir qursquoun seul endroit où faire des changements. Cependant, ce nrsquoest pas une raison importante drsquoétendre la classe de base. Lrsquointerface peut résoudre le même problème sans suivre la hiérarchie drsquohéritage de classe, sinon elle nrsquoest pas nécessaire. Exemple: administrateur drsquointerface {
Constante Slug = lsquomio plug inrsquo
Exécution
Devriez vous utiliser l’interface objet pour le développement de WordPress?