Modèle objet de PHP (1)

Licence Informatique 2ème année

Youssef Chahir - Alexandre Niveau - Jean-Marc Lecarpentier

 

Modèle objet de PHP (1)

Notes de cours

Travail personnel

Objectifs

On continue à manipuler PHP et on aborde les aspects objets.

Exercice 1 — PHP Objet : Géométrie : polygone, rectangle, triangle, ... #

Le but de ce TP est d'illustrer en PHP l'héritage à travers un exemple classique de géométrie : les polygones et leurs spécialisations en rectangles, en triangles, etc....

  1. Dans le fichier "Point.php", écrivez une classe Point pour représenter un point en 2 dimensions avec une couleur qui sera par défaut 'noir'. Cette classe devra contenir au moins le constructeur, une méthode calculerDistance pour calculer la distance entre deux points, et une méthode __toString pour afficher les coordonnées d'un point sous la forme (x, y).
  2. Écrivez un fichier "TestPoint.php" pour tester votre classe Point et ses méthodes.

    Par exemple :

    <?php
            // Assurez-vous que la classe Point est incluse
            require_once 'Point.php';
    
            // Créez une instance de la classe Point
            $pointA = new Point(10, 10, 'rouge');
    
            // Affichez les coordonnées du point
            echo "Coordonnées du point A : $pointA \n";
    
            // Créez un autre point
            $pointB = new Point(20, 20, 'bleu');
    
            // Affichez les coordonnées du deuxième point
            echo "Coordonnées du point B : $pointB \n";
    
            // Calculez la distance entre les deux points
            $distance = $pointA->calculerDistance($pointB);
    
            // Affichez la distance
            echo "Distance entre les points A et B : $distance";
        ?>
        
  3. Dans le fichier "Polygone.php", écrivez une classe Polygone où un polygone est un ensemble de points. Le constructeur prend en arguments les points qui composent le polygone.
    • Écrivez la méthode nombreSommets pour calculer le nombre de sommets.
    • Ajoutez une méthode __toString pour l'affichage de la liste des sommets (les points).
    • Écrivez un fichier "TestPolygone.php" pour tester vos polygones et leurs méthodes.

      Par exemple :

      <?php
          // Assurez-vous que la classe Point et Polygone sont incluses
          require_once 'Point.php';
          require_once 'Polygone.php';
      
          // Exemple d'utilisation
          $pointA = new Point(10, 10, 'rouge');
          $pointB = new Point(20, 20, 'bleu');
          $pointC = new Point(10, 20, 'vert');
      
          // Création d'une instance de Polygone
          $polygone = new Polygone([$pointA, $pointB, $pointC]);
      
          // Affichage des informations
          echo "Je suis un polygone avec les sommets : $polygone \n";
      
      ?>
      
  4. Dans le fichier "Rectangle.php", créez une classe Rectangle qui hérite des points. Le constructeur prend en argument deux points, correspondant aux coins supérieur gauche et inférieur droit.
    • Ajoutez les méthodes calculerLongueur et calculerLargeur pour calculer respectivement la longueur et la largeur du rectangle.
    • Vérifiez le calcul du périmètre du rectangle.
  5. Créez un script nommé "TestRectangle.php" qui instancie la classe Rectangle en fournissant deux points correspondant aux coins supérieur gauche et inférieur droit. Ensuite, affichez les informations du rectangle, notamment la longueur, la largeur et le périmètre :
  6. <?php
    // TestRectangle.php
    // Assurez-vous que la classe Rectangle est incluse
    require_once 'Rectangle.php';
    
    // Création d'une instance de Rectangle
    $coinSupGauche = new Point(2, 5, 'rouge');
    $coinInfDroit = new Point(8, 2, 'bleu');
    $rectangle = new Rectangle($coinSupGauche, $coinInfDroit);
    
    // Affichage des informations
    echo "Je suis un rectangle avec le coin supérieur gauche $coinSupGauche et le coin inférieur droit $coinInfDroit 
    "; echo "Ma longueur est : " . $rectangle->calculerLongueur() . "\n"; echo "Ma largeur est : " . $rectangle->calculerLargeur() . "\n"; echo "Et mon périmètre est : " . $rectangle->calculerPerimetre(); ?>
  7. Dans le fichier "Cercle.php", écrivez une classe Cercle caractérisée par son centre (un point) et son rayon. Cette classe doit inclure le(s) constructeur(s), une méthode calculerPerimetre pour calculer le périmètre du cercle, ainsi qu'une méthode calculerSurface pour calculer sa surface.
    • À la création d'une instance de cercle, vérifiez que la valeur de son rayon est positive. Dans le cas contraire, le programme doit lever une exception et retourner un message d'erreur.
    • Créez une méthode afficherCercle.
    • Le rayon d'un cercle est défini comme la distance entre les points du cercle et son centre. Un cercle est l'ensemble de points situés à même distance d'un point donné. Ce point est son centre, la distance est le rayon. On peut traduire ceci en disant qu'un cercle est l'ensemble des solutions d'une équation de la forme :
      `\sqrt{(x-a)^2 + (y-b)^2} = R`
      pour R un nombre réel positif (cercle de centre (a,b) et rayon R).