Exemple de développement MVC & OOP en PHP

 
 

Conception

Support de cours sur la programmation en PHP.

 Voir le projet sur GitHub

Programmation orientée objet — OOP

En bref : (en cours de rédaction)

Principe de base

(en cours de rédaction)


Propriétés SOLID

S : Responsabilité unique
Une classe n'a qu'une seule responsabilité.
Éviter impérativement les “God Objects.”

O : Ouvert à l'extension / Fermé à la modification
Une classe doit pouvoir être étendue.
Eviter de modifier le code source préexistant.

L : Substitution de Liskov
Une instance d'un type de base doit pouvoir être substitué par un sous-type de celui-ci sans altérer le comportement du programme.
Eviter aux méthodes de devoir déterminer si un de ses paramètres est d'un sous-type précis et de changer le comportement du programme en fonction du sous-type.

I : Ségrégation des interfaces
Définir plusieurs interfaces précises pour faciliter leur implémentation par les classes.
Eviter les interfaces généralisées.

D : Inversion des dépendances
Une classe doit toujours dépendre des abstractions en cassant les références entres différentes classes (découplage).
Eviter auc classes de dépendre des implémentations.

Modèle Vue Contrôleur — MVC

En bref : Selon les principes de l'architecture MVC, un contrôleur capte une “demande” utilisateur, opère un traitement sur le modèle – si lieu – puis notifie la vue qui est alors “mise à jour”

Architecture

Un motif d'architecture logicielle destiné aux interfaces graphiques lancé en 1978 et très populaire pour les applications web. Le motif est composé de trois types de modules ayant trois responsabilités différentes :

  • Les modèles
  • Les vues
  • Les contrôleurs

Combinaison

Ce patron d'architecture est une combinaison des patrons que l'on retrouve dans les Design Patterns. À savoir :

  • observateur – catégorie Patrons de comportement
  • stratégie – catégorie Patrons de comportement
  • composite – catégorie Patrons de structure
Schéma Modèle Vue Contrôleur — MVC

Description

  • Modèle : Élément qui contient les données ainsi que de la logique en rapport avec les données – validation, lecture et enregistrement. Il peut, dans sa forme la plus simple, contenir uniquement une simple valeur, ou une structure de données plus complexe.
  • Vue : Partie visible d'une interface graphique et qui se sert du modèle. Une vue contient des éléments visuels ainsi que la logique nécessaire pour afficher les données provenant du modèle
  • Contrôlleur : Module qui traite les actions effectuées par l'utilisateur, détient un rôle logique pure et modifie les données du modèle et de la vue.

Sources :Wikibooks : Patrons de Conception & Wikipédia : Patron de conception