Programmation orientée objet dans WordPress Fonctions et attributs

Alors que nous poursuivons notre discussion sur la programmation orientée objet dans le contexte de WordPress, il est temps que nous commencions à parler des fonctionnalités actuelles de la programmation orientée objet..

Bien que nous ayons déjà couvert les cours, nous devions explorer quelques concepts de base de la programmation avant de revenir à certains des concepts centraux orientés objet.. 

Dans cet article, nous allons commencer à parler de fonctions et d'attributs: deux aspects fondamentaux de la programmation orientée objet. Mais tout d’abord, assurez-vous que tous les articles précédents vous intéressent:

  1. Une introduction
  2. Des classes
  3. Les types
  4. Structures de contrôle: instructions conditionnelles
  5. Structures de contrôle: boucles

L'un des points que j'aimerais réitérer à propos de cette série est que nous travaillons à l'examen de la programmation orientée objet dans le contexte de WordPress en partant des aspects fondamentaux de la programmation..

Nous faisons cela pour nous assurer que les débutants en programmation disposent de tout ce dont ils ont besoin, non seulement pour se lancer dans la programmation, mais aussi pour apprendre le paradigme et éventuellement pour construire un plugin WordPress..

Cela dit, reprenons notre discussion en parlant des fonctions et des attributs..

Les fonctions

Pour ceux qui sont familiers avec la programmation procédurale, alors vous connaissez sûrement les fonctions - après tout, c'est la façon dont vous travaillez, bien?

Mais pour ceux qui se lancent dans la programmation, il y a deux choses à comprendre sur les fonctions:

  1. Ils existent dans la programmation procédurale, la programmation fonctionnelle et la programmation orientée objet..
  2. Ils peuvent être considérés comme un moyen de lier toutes les constructions précédentes pour compléter une unité de travail plus complexe..

En ce qui concerne le deuxième point, il est vrai qu’une grande partie de ce dont nous avons discuté précédemment - c’est-à-dire les variables, les conditions, les boucles, etc. - est également responsable de l’achèvement du travail d’une seule unité; cependant, chacun de ceux-ci travaillent ensemble pour obtenir quelque chose de légèrement supérieur à eux-mêmes.

En fonction de la langue, il est également probable que vous entendiez ces méthodes ou routines. Indépendamment de la terminologie utilisée, le fait est que les fonctions utilisent des constructions de base pour mener à bien une action..

Les fonctions peuvent également fonctionner de trois manières:

  1. Les fonctions peuvent effectuer un travail en prenant des informations et en les exploitant.
  2. Les fonctions peuvent effectuer un travail en renvoyant des informations au code qui l'a appelé..
  3. Les fonctions peuvent effectuer une unité de travail sans prendre aucune information ni renvoyer d’information au code qui l’a appelée. En termes simples, il peut effectuer une action en silence.

Nous examinerons chacun de ces scénarios plus en détail dans un instant. Dans un article ultérieur, nous verrons comment ils fonctionnent en classe. Pour l’instant, examinons le fonctionnement des fonctions dans PHP et les nuances les concernant..

Fonctions simples

Rappelez-vous de la section précédente qu'il est parfois possible de définir des fonctions qui n'acceptent aucune entrée ni ne renvoient aucune information.. 

Dans ce cas, ces types de fonctions exécutent généralement un type d'opération (comme la mise à jour d'une option dans la base de données) et sont invoqués par une autre fonction à la fin d'une opération donnée..

Ainsi, par exemple, supposons que nous souhaitons utiliser une fonction pour mettre à jour la base de données WordPress sous-jacente. Cela nécessite que nous sachions plusieurs choses:

  • update_option
  • Une clé que nous allons utiliser pour stocker les informations
  • La valeur à stocker et qui sera récupérée avec la clé

Dans notre cas, disons que nous voulons mettre à jour une valeur dans la base de données identifiée par le blog_last_updated clé. Ensuite, nous allons utiliser la fonction PHP temps() pour stocker l'heure à laquelle la fonction est appelée.

Cela dit, définissons notre fonction:

D'après la description que nous avons fournie ci-dessus, vous pouvez voir que le corps de la fonction utilise le update_option Fonction API WordPress avec la clé et la valeur spécifiées que nous avons décrites.

Ceci peut ensuite être invoqué par un autre morceau de code en appelant simplement set_blog_updated ();.

Arguments

Les fonctions qui n'acceptent pas les arguments ne peuvent être utiles que jusqu'à un certain niveau. À un moment donné, vous devez pouvoir transmettre des informations à une fonction afin qu’elle puisse effectuer un certain type de calcul, d’opération ou d’évaluation sur les informations..

Conformément à notre exemple ci-dessus, supposons que nous souhaitons toujours mettre à jour la base de données avec un horodatage, mais uniquement si une certaine clé est passée dans la fonction; sinon, nous ne ferons rien.

Notez que la signature de la fonction - c'est-à-dire le nom de la fonction et les données entre parenthèses - a été mise à jour pour accepter une variable référencée par clé $.

Ensuite, la fonction utilise une condition pour vérifier que la valeur de la variable est égale à celle de la clé que nous examinions dans la première version de la fonction. Pour faire une comparaison facile, il faut mettre la valeur de clé $ en utilisant PHP strtolower une fonction.

Cela signifie que nous pouvons invoquer la fonction de la manière suivante et encore le mettre à jour:

  • set_blog_updated ('BLOG_LAST_UPDATED');
  • set_blog_updated ('Blog_Last_Updated');
  • set_blog_updated ('blog_last_updated');

Tous les appels de fonction ci-dessus effectueront l'opération suivante; cependant, si nous devions passer d’autre chose à la fonction, le conditionnel s’évaluerait à faux et serait ne pas déclenche la fonction de mise à jour.

Par exemple, appeler set_blog_updated ('not_now'); aurait ne pas travail.

Résultats

Maintenant, disons que nous voulons que la fonction avec laquelle nous travaillons renvoie une valeur. Spécifiquement, supposons que nous voulions renvoyer une valeur indiquant si la fonction de mise à jour a été activée ou non.. 

Pour ce faire, nous pouvons tirer parti de la fonction revenir ainsi que la valeur renvoyée par la fonction update_option. Selon le codex WordPress, update_option retournera ce qui suit:

True si la valeur de l'option a changé, false sinon, ou si la mise à jour a échoué.

À cette fin, nous pouvons ajuster notre fonction pour fonctionner comme suit:

Nous avons maintenant une fonction qui accepte un argument, retourne une valeur et exploite également une conditionnelle non seulement pour mettre à jour la valeur mais également pour s'assurer que la valeur a été mise à jour avec succès.

Étant donné la fonction ci-dessus, nous pouvons l'invoquer comme dans les exemples précédents, mais nous pouvons maintenant stocker le résultat dans une variable qui nous permettra d'améliorer encore le code dans notre programme..

Par exemple, nous pouvons continuer à appeler la fonction en disant set_blog_last_updated ('blog_last_updated'); mais maintenant nous pouvons aussi stocker le résultat de la fonction dans une variable.

Pour ce faire, il vous suffit d'écrire une ligne de code qui effectue les opérations suivantes: $ blog_was_updated = set_blog_last_updated ('blog_last_updated'); Dans ce cas, la variable $ blog_was_updated sera mis à vrai si la condition s'est exécutée et que l'appel de mise à jour a abouti, mais sera faux si la condition n'a pas fonctionné ou si elle a fonctionné, mais le update_function échoué.

Arguments de longueur variable

Un autre aspect des fonctions dépasse le cadre de cet article, à savoir les arguments de longueur variable. En bref, il existe un moyen pour une fonction d'accepter un certain nombre d'arguments que nous ne sommes pas en mesure d'anticiper lors de l'écriture de code.

 Si vous souhaitez lire à l’avance, vous pouvez consulter l’article du manuel PHP. Cependant, nous examinerons cela plus tard dans la série..

Les attributs

À ce stade, nous allons passer à la vitesse supérieure et parler de quelque chose qui est purement lié à la programmation orientée objet et qui est des attributs de classe..

Rappelez-vous de notre discussion sur les classes que nous avons examiné un exemple de classe pour un Blog_Post. Pour référence, le code ressemblait à ceci:

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

À ce stade de la série, vous devriez pouvoir identifier facilement la définition de la classe, la définition de la fonction et les attributs..

Plus précisément, les attributs sont les trois variables qui existent en haut du fichier, au-dessus des fonctions. Comme indiqué dans l'article sur les classes, les attributs peuvent être considérés comme les adjectifs décrivant la classe.

Dans l'exemple ci-dessus, nous avons une classe qui représente un article de blog et un article de blog peut être décrit par son auteur, sa date de publication et s'il a été publié ou non..

Ces valeurs particulières ne sont que des variables comme nous l'avons vu précédemment dans la série et peuvent contenir n'importe quel type de valeur, qu'il s'agisse d'un type de données primitif tel qu'une chaîne, un entier, un booléen ou qu'il puisse référencer un type de données plus complexe tel que comme un tableau ou un autre objet.

Le point des attributs est qu’ils existent au niveau de classe. Cela signifie que les variables peuvent être utilisées dans n’importe laquelle des fonctions définies dans la classe - elles ne doivent pas nécessairement être passées en tant qu’arguments de fonction et peuvent être mises à jour pour refléter l’état de l’objet à n’importe quel moment de sa vie. runtime. 

Maintenant, en termes de Comment ils sont définis, ceci est fait dans le contexte d'un type spécial de fonction appelé constructeur. En bref, un constructeur est une fonction réservée à l’initialisation d’une classe. Dans de nombreux cas, elle est utilisée pour initialiser des valeurs..

En PHP, un constructeur est une fonction nommée __construction qui est un mot réservé dans la langue. Donc, étant donné les attributs ci-dessus et notre introduction aux fonctions, voici comment procéder pour initialiser nos attributs:

class Blog_Post private $ author; private $ publish_date; private $ is_published; fonction publique __construct () $ this-> auteur = "; $ ceci-> publier_date = null; $ ceci-> is_published = false; fonction publique publish () // Publier l'article ici fonction publique delete ()  // Supprimer l'article ici

L'un des éléments les plus importants à retenir du code ci-dessus est que les attributs sont des références légèrement différentes des variables normales. Plus précisément, notez qu'ils sont référencés à l'aide du $ this mot-clé. C'est ce qui différencie les attributs des variables normales dans une définition de classe.

Deuxièmement, notez que les variables définies aux valeurs initiales. Dans l’état actuel des choses, chaque article de blog créé sera ne pas avoir un auteur qui est spécifié, il sera ne pas avoir une date de publication, et il sera ne pas avoir un état d'être publié.

Au fur et à mesure que nous approfondissons la discussion sur la programmation orientée objet, nous allons parler de la manière dont les variables sont définies, de la manière dont elles peuvent être utilisées dans la classe, de la manière dont elles peuvent être définies, récupérées, etc..

Public, privé et quoi?

Pour ces lecteurs astucieux, vous avez probablement remarqué les mots-clés utilisés dans le code, tels que Publique et privé. Il y a aussi un autre mot clé qui est utilisé dans la programmation orientée objet et qui est protégé.

Nous parlerons de chacun d'eux en détail dans le prochain article.

À suivre

Comme nous venons de le mentionner, il existe un certain nombre de mots-clés utilisés pour désigner des attributs et des fonctions qui ont tous à voir avec ce que l'on appelle portée. Dans le prochain article, nous allons commencer à explorer la portée des variables et des fonctions, une idée fondamentale de la programmation orientée objet..

Donc, comme nous avons couvert tous les éléments fondamentaux de la programmation en PHP, nous nous préparons maintenant à passer à la programmation orientée objet, après quoi nous allons passer à l’application des concepts et des techniques de développement WordPress..