Introduction 39 Héritage de classe PHP orienté objet

Ou étendons la requête WP _ et nous commencerons notre classe par
Lorsqursquoune classe est étendue, nous la considérons comme une classe mère et une classe étendue comme une classe enfant. Lrsquoutilisation correcte de lrsquohéritage de classe exige une compréhension approfondie de la visibilité des attributs et des méthodes, dont jrsquoai discuté en profondeur ici. La Sous classe commence par la classe mère. Par exemple, si nous ne lrsquoécrivons que pour la classe Product _ query, elle sera la même que Wp query: Product Query étend WP Query {}, ce qui ne donne évidemment aucun résultat. Drsquoautre part, si nous travaillons sur un projet qui nécessite beaucoup de requêtes pour les messages dans le type de message produit, nous pouvons utiliser cette classe pour simplifier les choses:
Classe Product _ Query Extended WP Query {
Fonctions publiques construction ($QUERY) {
$QUERY [lsquopost _ typersquo] =
Parent:: _ construction ($QUERY)
}
} cette classe suit les mêmes règles que Wp _ query, mais nous nrsquoavons pas à dire tout le temps que nous nrsquoavons besoin que des messages produits. De plus, il est clair que les objets créés avec lui sont utilisés pour les messages produits. Nous pouvons ajouter plus de personnalisation à la construction. Notez que dans ma classe drsquoextension, jrsquoai créé une fonction appelée _ Construct () et que Wp query a également déclaré un constructeur. Nrsquoimporte quelle méthode, magique ou non, peut être écrasée dans la Sous classe, mais pouvez toujours accéder à la méthode parent en utilisant le mot clé
Notez que lrsquoécrasement drsquoune méthode et la modification de sa signature, de ses paramètres ou de son type déclencheront une alerte standard stricte en PHP5, et une alerte en php7. Vous ne devriez pas le faire parce que cela rend le code plus difficile à lire. utilisez une instruction de type de retour en php7, ne changez pas le type de retour de la méthode lorsque lrsquoécrasez en S.
Une erreur fatale ou une erreur fatale se produira. PHP5 ne supporte pas les déclarations de type de retour. Un bon exemple drsquohéritage de classe est la classe de réponse WP _ http qui se trouve dans le répertoire WP includes restapi, mais qui peut être utilisée avec nrsquoimporte quel type de réponse http. Il est étendu par la classe WP _ rest Response, qui est spécialement utilisée pour répondre aux demandes de lrsquoAPI rest.
Une classe abstraite peut encore être étendue à moins qursquoelle ne soit déclarée finale. Php fournit des conventions abstraites pour les classes qui ne peuvent pas être instantanées directement, et ne fournit des classes de base que pour les autres classes qui les étendent. Une autre règle spéciale pour les classes abstraites est qursquoelles peuvent avoir des méthodes abstraites qui doivent être écrasées par la classe qui les étend, sinon des erreurs peuvent se produire. Crsquoest un système très utile parce qursquoil permet de définir comment les sous classes fonctionnent. Les méthodes abstraites ne peuvent pas avoir de corps, et les méthodes qui les écrasent ne peuvent pas changer leur signature. Une erreur fatale se produit si essayez de modifier un paramètre ou un type de paramètre en PHP5 ou php7.
Ceci est légèrement différent de la réécriture drsquoune méthode non abstraite, bien que dans la pratique, crsquoest la même chose que ne devriez pas changer la signature drsquoune méthode, même si techniquement pouvez faire des changements dans PHP5 qui désactive les normes strictes. Les interfaces fournissent des rôles similaires, mais les méthodes des interfaces doivent être publiques, tandis que les méthodes abstraites peuvent être publiques, protégées ou privées. Les méthodes qui écrasent les méthodes abstraites doivent également utiliser la même signature. Le Contrôleur WP _ rest de l’api WordPress rest est un bon exemple de classe abstraite. Il srsquoétend de tous les paramètres pour fournir un système standard sur la façon dont les classes de paramètres devraient fonctionner.
Notez qursquoil nrsquoutilise pas de méthodes abstraites parce que les versions précédentes de PHP ne supportent pas les méthodes abstraites. moi.
K
$obj gt Connect ()
Mise à jour _ option (lsquopublic Social Network, $obj gt get public ())
Mise à jour _ option (lsquoSecret réseau social, $obj gt get secret ())
} moins de code, mieux de code cette brève introduction à lrsquohéritage de classe en PHP devrait aider à écrire des classes plus petites avec plus de code réutilisable. Le Code réutilisable est non seulement plus efficace, plus facile à lire et à entretenir, mais il nécessite également moins de tests unitaires. Lrsquohéritage de classe a de nombreuses utilisations que devriez étudier attentivement. Au lieu de réutiliser WP _ Query à plusieurs reprises, pouvez écrire une classe de base appelée WP Query et lrsquoétendre plusieurs fois pour répondre à vos besoins. Par exemple, si créez un plug in qui nécessite des paramètres drsquoAPI de repos personnalisés, pouvez étendre la classe WP _ rest Controller, ce qui permettra drsquoéconomiser beaucoup de travail. travaillez sur un site qui interagit avec plusieurs services de courrier électronique transactionnel, écrivez une classe de base pour gérer toutes les fonctions publiques nécessaires à lrsquointeraction API de ces services de courrier électronique transactionnel et étendez chaque service une fois. Je peux continuer avec ces exemples, mais devriez examiner le Code et le plan de projet existants et réfléchir à la façon dont lrsquohéritage de classe peut aider à sauter la méthode copier coller et à améliorer votre code.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

ContactPress Supported By WordPress Plugins