PHP – Les bibliothèques de fonctions

Outre les fonctions, nous possédons en PHP un formidable outil, les classes, permettant, entre autre choses de regrouper nos fonctions sous un même intitulé, créant par la même une bibliothèque.

Les bibliothèques

Une bibliothèque en PHP est définie par une classe, et cette classe est toujours définie par le mot clé « class », suivit d’un nom, puis d’accolades.

Fichier bibliotheque.php :
<?php

  class MaBibliotheque
  {
  }

?>

Maintenant qu’on a pu définir une classe, on peut y définir des fonctions. Cependant, pour que notre classe fonctionne comme une bibliothèque, on doit précéder la déclaration de nos fonctions par le mot clé « static ». Créons ensemble une petite bibliothèque mathématiques, sachant additionner, soustraire, multiplier, et diviser.

Fichier bibliotheque.php v2 :
<?php

  class Maths
  {
    static function Ajouter($A, $B)
    {
      return $A + $B;
    }
    
    static function Soustraire($A, $B)
    {
      return $A - $B;
    }
    
    static function Multiplier($A, $B)
    {
      return $A * $B;
    }
    
    static function Diviser($A, $B)
    {
      return $A / $B;
    }
  }

?>

Mais comment accéder à notre bibliothèque ? Simplement en utilisant son nom, suivit de deux double-points (« :: »), suivit du nom de la fonction à utiliser. Bref, c’est pas si compliqué, je vais vous montrer comment faire, en affichant le résultat de quelques opérations.

Fichier bibliotheque.php v3 :
<?php

  class Maths
  {
    static function Ajouter($A, $B)
    {
      return $A + $B;
    }
    
    static function Soustraire($A, $B)
    {
      return $A - $B;
    }
    
    static function Multiplier($A, $B)
    {
      return $A * $B;
    }
    
    static function Diviser($A, $B)
    {
      return $A / $B;
    }
  }

  echo Maths::Ajouter(5, 3), '<br>';
  echo Maths::Soustraire(5, 3), '<br>';
  echo Maths::Multiplier(5, 3), '<br>';
  echo Maths::Diviser(5, 3), '<br>';

?>

Vous pouvez maintenant exécuter ce code si vous le souhaitez. En PHP, il existe une seconde façon d’accéder à sa bibliothèque. Vous pouvez définir une variable qui pointe vers le nom de votre bibliothèque.

Fichier bibliotheque.php v4 :
<?php

  class Maths
  {
    static function Ajouter($A, $B)
    {
      return $A + $B;
    }
    
    static function Soustraire($A, $B)
    {
      return $A - $B;
    }
    
    static function Multiplier($A, $B)
    {
      return $A * $B;
    }
    
    static function Diviser($A, $B)
    {
      return $A / $B;
    }
  }

  $M = Maths;
  echo $M::Ajouter(5, 3), '<br>';
  echo $M::Soustraire(5, 3), '<br>';
  echo $M::Multiplier(5, 3), '<br>';
  echo $M::Diviser(5, 3), '<br>';

?>

Cette notation peut être utile pour simplifier des noms de bibliothèque à rallonge, mais aussi à choisir entre deux versions de bibliothèque possédant la même structure.

Le mot clé « self »

Lorsque nous avons besoin d’accéder à une fonction interne de notre bibliothèque, nous pouvons utiliser le mot clé « self » plutôt que le nom canonique. C’est utile si vous souhaitez par la suite changer le nom de votre bibliothèque.

Fichier bibliotheque.php v5 :
<?php

  class Maths
  {
    static function Ajouter($A, $B)
    {
      return $A + $B;
    }
    
    static function Soustraire($A, $B)
    {
      return $A - $B;
    }
    
    static function Multiplier($A, $B)
    {
      return $A * $B;
    }
    
    static function Diviser($A, $B)
    {
      return $A / $B;
    }

    static function ExempleOperations()
    {
      echo self::Ajouter(5, 3), '<br>';
      echo self::Soustraire(5, 3), '<br>';
      echo self::Multiplier(5, 3), '<br>';
      echo self::Diviser(5, 3), '<br>';
    }
  }

  Maths::ExempleOperations();

?>
Les propriétés

Nous avons jusque là défini des fonctions, mais on pourrait très bien définir de la même façon des variables. Les variables d’une bibliothèque peuvent être utile au bon fonctionnement interne de ladite bibliothèque, ou être utilisées pour sa configuration. Ajoutons à notre exemple une fonction qui récupère un nombre aléatoire entre deux valeurs, « Minimum » et « Maximum », qui sera configuré au moment de l’exécution du script. Nous modifierons la fonction « ExempleOperations() » pour prendre en compte cette nouvelle fonction.

Fichier bibliotheque.php v6 :
<?php

  class Maths
  {
    static $Minimum = 0;
    static $Maximum = 10;

    static function Ajouter($A, $B)
    {
      return $A + $B;
    }
    
    static function Soustraire($A, $B)
    {
      return $A - $B;
    }
    
    static function Multiplier($A, $B)
    {
      return $A * $B;
    }
    
    static function Diviser($A, $B)
    {
      return $A / $B;
    }

    static function RecupererNombreAleatoire()
    {
      return rand(self::$Minimum, self::$Maximum);
    }

    static function ExempleOperations()
    {
      echo self::Ajouter(self::RecupererNombreAleatoire(), self::RecupererNombreAleatoire()), '<br>';
    }
  }

  Maths::$Minimum = 25;
  Maths::$Maximum = 50;
  Maths::ExempleOperations();

?>

Comme vous pouvez le constater, cela fonctionne exactement de la même façon que pour les fonctions.

Conclusion

Vous pouvez désormais écrire vos propres bibliothèques de fonctions, c’est cool na ? Vous savez désormais comment on déclare des variables statiques, des fonctions statiques, et vous en servir, que ce soit au sein de la classe de définition, ou en dehors de cette dite classe. Prochain article : La visibilité des propriétés et des fonctions.

Note: On pourrait très bien ne pas définir le mot clé « static » pour les fonctions, et uniquement les fonctions, il est obligatoire pour les variables. Si je vous ai appris à vous en servir, c’est pour prendre les bonnes habitudes de suite. Nous verrons dans un prochain article que nous pouvons nous passer de ce mot clé, mais c’est à réserver à certaines situations particulières. Bref, prenez la bonne habitude de déclarer vos fonctions « static », lorsqu’elles servent à de la simplification du code.

Laisser un commentaire