Semaine 19 : PHP POO - SimplonSt-Gaudens/programme-web-dev-promo-2 GitHub Wiki

Semaine 19

Objectif

  • Retrouver la programmation objet
  • Appliquer avec PHP

Lundi

Présentations de la semaine : Chaque notion abordée cette semaine devra être présentée

Sujets :

  • Mardi : Design patterns : Clément
  • Mercredi : ORM : Philippe
  • Jeudi : SOLID : Guillaume
  • Vendredi : procédures stockées : Vanessa

POO

Programmation orientation objet

Piqûre de rappel : Révisions sur le vocabulaire propre à la programmation orientée objet.

La POO :

La POO est un paradigme de programmation informatique. Définition

Classes, instances et objets :

définition et découverte

Créer et manipuler des objets

Les relations des objets

Étant donné qu’en POO les objets logiciels interagissent entre eux, il y a donc des relations entre les classes. On distingue quatre types de relations durables

Instance et intanciation

Une instance, c'est tout simplement le résultat d'une instanciation. Une instanciation, c'est le fait d'instancier une classe. Instancier une classe, c'est se servir d'une classe afin qu'elle nous crée un objet. En gros, une instance est un objet. Une instance est une représentation particulière d'une classe. Lorsque l'on crée un objet, on réalise ce que l'on appelle une « instance de la classe ». C'est à dire que du moule, on en extrait un nouvel objet qui dispose de ses attributs et de ses méthodes. L'objet ainsi créé aura pour type le nom de la classe.

Le principe d'encapsulation

L'un des gros avantages de la POO est que l'on peut masquer le code à l'utilisateur (l'utilisateur est ici celui qui se servira de la classe, pas celui qui chargera la page depuis son navigateur). pourquoi c'est important

Le constructeur

En programmation orientée objet, vous entendrez souvent parler de « constructeur ». Un constructeur est en fait une méthode qui va nous permettre de rendre notre classe immédiatement opérationnelle et utilisable en définissant des propriétés dès qu’un utilisateur va vouloir créer une nouvelle instance de cette classe. Pour mieux comprendre

Comment créer un constructeur

<?php
class NomDeMaClasse
{
  // Attributs>
  // Constantes
  // Méthodes
}

Exemple

class Vehicule {
private $poids;
private $vitesse;
public function avancer(){
	return "vroum vroum";
}

 public function __construct($pds,$v){
  $this->poids = $pds;
  $this->vitesse = $v;
  }
  
  public static function klaxonner(){
  	echo "pouet";
  }
  
  public function getPoids(){
  	return $this->poids;
  }
  
  public function setPoids($p){
  	$this->poids = $p;
  }
  
  public function getVitesse(){
  	return $this->vitesse;
  }
  
  public function setVitesse($v){
  	$this->vitesse = $v;
  }
}

$titine = new Vehicule(1000, 50);
echo $titine->avancer();
echo $titine->getPoids();

Vehicule::klaxonner();

class Voiture extends Vehicule {
	private $nbre_passagers;
	public function allumer_autoradio(){
		return "lalala";
	}
	
public static function klaxonner(){
  	echo "tut";
  }
	 public function __construct($pds,$v,$n){
	 	parent::__construct($pds,$v);
  $this->nbre_passagers = $n;
  }
	
public function getNbre_passagers(){
  	return $this->nbre_passagers;
  }
  
  public function setNbre_passagerse($n){
  	$this->nbre_passagers = $n;
  }
}

$ferrari = new Voiture(800, 100, 2);
echo $ferrari->avancer();
echo $ferrari->allumer_autoradio();
echo $ferrari->klaxonner();

Les principes d'une bonne conception

TDD Test Driven Development

Des solutions éprouvées à des problèmes récurrents

  • Les design Patterns

Depuis les débuts de la programmation, tout un tas de développeurs ont rencontré différents problèmes de conception. La plupart de ces problèmes étaient récurrents. Pour éviter aux autres développeurs de buter sur le même souci, certains groupes de développeurs ont développé ce qu'on appelle des design patterns (ou masques de conceptions en français). Chaque design pattern répond à un problème.

Ressources

Liens

Exercice

Mardi

Kata (PHP)

Des maths?!

Interlude : les procédures stockées

  • OC
  • Créer une procédure stockée
DELIMITER |
CREATE PROCEDURE afficher_race_selon_espece (IN p_espece_id INT)  
BEGIN
    SELECT id, nom, espece_id, prix 
    FROM Race
    WHERE espece_id = p_espece_id;  
END |
DELIMITER ; 
  • Utiliser une procédure stockée
CALL afficher_race_selon_espece(1);

OU

SET @espece_id := 2;
CALL afficher_race_selon_espece(@espece_id);

ORM

Exercice

Mercredi

Révisions

Exercice

Jeudi

Randori (PHP)

Write a program that will convert a trinary number, represented as a string (e.g. '102012'), to its decimal equivalent using first principles.
More info

MasterClass Symfony : Allan

Vendredi

Présentations libres : Quelques idées :

  • Hacker.io
  • Users story mapping (Marion)
  • Selenium
  • Mavo.io
  • Regex
  • Netlify
  • ORM

On n'oublie pas pour autant le reste :

CV

PHP

SQL

Javascript

HTML/CSS

Git

Game

Design

Agile

MISC DEV

MISC

Bonus