Comme indiqué dans le premier article de cette série, nous abordons le concept de programmation orientée objet dans le contexte de WordPress, et nous le faisons pour le très débutant.
Cela signifie que si vous n'avez jamais entendu parler de la programmation orientée objet, ou si vous avez été curieux de l'apprendre, et vous êtes quelqu'un qui s'intéresse à WordPress et qui apprend à développer des solutions, cette série est pour vous.
Dans les prochains articles, nous allons couvrir tous les aspects majeurs de la programmation orientée objet. Une fois que nous aurons fait cela, nous examinerons comment appliquer ce que nous avons appris en créant une solution efficace pour WordPress..
Mais d'abord, nous devons commencer par les bases.
Si vous demandiez à 10 développeurs différents de définir leur classe, vous obtiendriez probablement beaucoup de similaire réponses, mais peu d’entre elles étaient en fait les mêmes. En fait, celui que j'ai entendu répéter le plus souvent quand j'étais plus jeune était comme ça:
Une classe est un plan pour la création d'un objet.
En théorie, ça sonne bien notamment si vous savez ce qu'est un objet. Mais c'est le problème, n'est-ce pas? Nous essayons d'apprendre sur la programmation orientée objet, il n'y a donc aucune garantie que nous sachions même ce qu'est un objet; par conséquent, comment pouvons-nous comprendre qu'une classe lui sert de modèle?
En un sens, c'est poser la question.
Donc, sauvegardons quelques étapes et définissons ce qu'est un objet afin de définir plus clairement ce qu'est une classe.
L’idée même du paradigme de la programmation orientée objet est que nous, en tant que programmeurs, pouvons plus facilement modéliser les informations que nous voyons dans le monde réel en utilisant des constructions dans un code..
Par exemple, dans le monde réel, certains objets peuvent être décrits à l'aide d'adjectifs et ces objets peuvent effectuer des actions. Bien que cela puisse paraître un peu cliché, réfléchissons un instant à une voiture:
Encore une fois, un exemple simple, mais cela prouve que tout ce que nous avons dans le monde réel peut généralement être réduit à un nom qui peut être décrit par ses adjectifs et les actions qu’il accomplit..
Donc généralisons cette idée aux objets. En fait, substituons un mot à un autre:
Assez facile, non? En résumé, nous devrions pouvoir décrire les choses que nous voyons dans le monde réel en tant qu’objets dans un paradigme de programmation. Notez que certains langages appellent des propriétés d’attributs et que certaines méthodes appellent des fonctions. Cela n'a pas vraiment d'importance, tout est pareil. Ils se réfèrent simplement aux adjectifs sur l'objet et les actions qu'il peut prendre, respectivement.
Ensuite, la plupart des cours de programmation ou des livres toujours Commençons par un exemple sur la manière dont les objets sont conçus pour modéliser des objets du monde réel (semblable à ce que j'ai fait avec l'exemple de voiture ci-dessus).
Et dans une certaine mesure, cela est vrai. Pour ceux qui avoir vous travaillez dans le développement, alors vous savez probablement comment nous pouvons modéliser les personnes dans le contexte de notre application, mais cela nous précède.
Bien qu'il soit vrai que nous puissions utiliser la programmation orientée objet pour modéliser des objets du monde réel, j'ai constaté que, le plus souvent, je modélisais une forme plus générale d'objet du monde réel, telle qu'un objet. utilisateur Plutôt qu'un la personne - et que les actions qu'ils effectuent leur sont plus uniques.
À cette fin, les exemples que je veux donner tout au long de cet article et ceux du reste de cette série vont être davantage orientés vers des applications pratiques en programmation informatique. Personne ne va écrire un plugin de voiture et personne ne va créer un objet animal (ce que vous voyez et entend souvent dans les cours d'introduction à la programmation).
Au lieu de cela, nous allons essayer de nous concentrer un peu plus sur les objets susceptibles d’être vus dans le domaine de la programmation - et non dans le monde réel. Non pas parce que la programmation orientée objet est faible, mais parce que notre façon d'enseigner est faible.
Bien sûr, cela pose la question de savoir ce qui constitue un bon exemple? Le problème avec la réponse à une question comme celle-ci est qu’il peut s’agir littéralement d’une grande variété de choses..
Cela inclut des objets tels que:
Et vous voyez: beaucoup de ces choses n'existent pas vraiment dans le monde réel. Par exemple, les articles de blog ne sont pas tangibles. Ce sont des choses que nous lisons sur nos écrans. Mais cela signifie-t-il qu'ils n'ont pas de propriétés telles qu'une date, une heure et un auteur? Ou cela signifie-t-il qu'ils n'ont pas d'actions telles que publier et supprimer?
Bien sûr que non.
Donc, à mesure que nous progressons dans cette série, nous allons parler d'objet en termes de choses avec lesquelles nous sommes plus susceptibles de travailler.
Je ne nous vois pas programmer un animal - et certainement pas dans WordPress - à aucun moment de cette série :).
Bon, maintenant que nous avons pris une brève digression dans quoi les objets sont en réalité, et les bons et les mauvais exemples de chacun, il est temps de commencer à parler des classes et de la façon dont elles servent réellement de modèles pour les objets.
En programmation, un objet est créé à partir d'une classe. Cela signifie qu'une classe définit toutes les propriétés d'un objet et les actions qu'il peut effectuer, puis l'ordinateur crée un objet en mémoire..
En ce qui concerne les classes, vous pouvez entendre les développeurs discuter de l’écriture de classes, de la définition de classes ou de la construction de classes. Toutes ces conditions sont acceptables.
Après cela, vous entendrez peut-être les développeurs parler de la création d'objets. L'acte de créer un objet s'appelle instanciation. Ouais - c'est un gros mot pour un concept relativement simple. Mais réfléchissez de cette façon: quand vous avez une classe, vous avez une définition à partir de laquelle vous pouvez créer plusieurs instances d’un objet..
Si nous devons établir une analogie avec le monde réel, réfléchissons d’abord à un ensemble de plans pour une maison. Il établit le plan d'étage, les dimensions, les murs, etc., qui donnent aux ouvriers de la construction des informations sur la construction d'une maison. Ensuite, lorsque vient le temps de construire une maison, une équipe de travailleurs de la construction l'érige sur la base du plan directeur..
C'est le cas des classes, de l'instanciation et des objets. Les classes sont les plans, l'ordinateur est l'équipe de travailleurs de la construction et les objets sont la maison. Et tout comme plusieurs maisons peuvent être érigées à partir d'un même plan, c'est le cas des objets et des classes.
Quand il s’agit d’écrire du code, certaines personnes sont capables d’imaginer l’objet dans leur tête - d’autres, peut-être pas.
Personnellement, je pense que cela a plus à voir avec la façon dont chacun de nous a tendance à apprendre et à traiter l'information, mais je pense qu'il est possible de commencer à imaginer mentalement comment les systèmes logiciels fonctionnent ensemble plus vous écrivez de code.
Ici, nous n’allons pas examiner un système complexe; toutefois, sont va regarder un exemple de classe puis une représentation visuelle de ce que cela pourrait ressembler en termes de code et en termes d'image mentale.
Puisque nous avons affaire à WordPress, un premier exemple de classe serait peut-être un post de blog..
Certes, ce sera un exemple simple pour illustrer les idées d'attributs et de fonctions, mais nous aborderons divers concepts de manière plus détaillée dans les prochains articles..
Cela dit, supposons que nous allons créer une classe pour un article de blog. Disons aussi que notre article de blog aura un auteur, une date à laquelle il a été publié, s'il est publié ou non, et les actions à publier et à supprimer..
Un exemple de définition de classe pour un article de blog avec ces attributs et fonctions se présentera comme suit:
class Blog_Post private $ author; private $ publish_date; private $ is_published; fonction publique publish () // publie l'article ici fonction publique delete () // supprime l'article ici
Pour ceux qui sont familiers avec la programmation orientée objet, vous pouvez reconnaître certaines des informations ci-dessus et vous pouvez également reconnaître que j'ai omis certaines choses (telles que le constructeur). Ne vous inquiétez pas pour ça - nous couvrirons ces concepts plus tard.
Pour ceux qui sont complètement nouveaux en programmation, voici à quoi ressemble une définition de classe de base. Pour le moment, ne vous inquiétez pas des mots privé
et Publique
comme nous allons couvrir ceux plus tard.
Au lieu de cela, concentrez-vous sur $ auteur
, $ publish_date
, et $ is_published
. Ce sont les attributs. Notez qu'ils sont situés au-dessus des définitions de fonctions de la classe. Ce sont analogues aux adjectifs qui décrivent la Blog_Post
.
Ensuite, nous avons les fonctions publier()
et effacer()
. Ces deux fonctions sont les actions qui peuvent être entreprises sur la Blog_Post
. Rappelez-vous, juste comment les objets dans le monde réel peuvent bouger (comme une voiture peut conduire), un article de blog peut être publié.
Alors que se passe-t-il lorsque vous instanciez réellement un article de blog? C’est-à-dire que, lorsque nous créons un article de blog en code, comment pouvons-nous imaginer mentalement ce qui se passe dans l’ordinateur?.
Tout d'abord, décrivons comment un article de blog est instancié. Rappelez-vous, instancié est un mot juste comme érigé est pour les ouvriers de la construction - c'est comment un objet est créé à partir d'une classe.
Voyons maintenant comment utiliser la définition de classe unique pour créer trois articles de blog différents:
$ first_post = new Blog_Post (); $ second_post = new Blog_Post ();
Assez facile à lire, non? Ci-dessus, nous avons créé deux variables qui référenceront deux complètement différentes Blog_Post
objets.
Notez que même si nous en reparlerons plus dans un prochain article, le mot Nouveau
est ce qui ordonne à l'ordinateur d'instancier un Blog_Post
de nous de la définition de classe.
Alors jetons un coup d'oeil au premier exemple où nous obtenons notre première instance de Blog_Post
.
Remarquez dans cette illustration, nous avons le $ first_post
variable qui fait référence à l'instance du Blog_Post
cela a été créé. le Blog_Post
existe dans la mémoire de l'ordinateur, il a ses attributs disponibles ainsi que ses méthodes disponibles.
Nous pouvons accéder à tout cela par le biais du $ first_post
variable qui référence cet objet. Nous en reparlerons plus en détail plus tard dans la série..
Mais qu'en est-il du $ second_post
? Comment cette regarder dans le contexte de la programmation orientée objet?
Si vous comparez les deux illustrations, elles se ressemblent beaucoup, à droite? $ first_post
fait référence à une instance de Blog_Post
, $ second_post
fait référence à une seconde instance de Blog_Post
même s'ils tous les deux est venu d'une seule classe.
Notez que pour ceux qui sont techniquement astucieux, il est possible pour les deux variables de référencer une seule instance, mais cela sort du cadre de cet article.
Quoi qu'il en soit, à ce stade, vous devez avoir une compréhension de haut niveau de ce qu'est une classe, de son rôle dans la programmation orientée objet et de la manière de créer des instances d'objets accessibles via des variables..
Cela ne nous montre toujours pas comment interagir avec les classes, n'est-ce pas? Nous y arriverons, mais nous devons d’abord aborder certains des aspects les plus primitifs de la programmation tels que les chaînes, les tableaux, les boucles et les conditions..
Chacune des constructions susmentionnées nous aidera à donner vie à nos objets, et une fois que nous aurons parcouru chacun d'entre eux, nous reviendrons pour créer des classes plus matures pouvant réellement fonctionner..