Exemple of development MVC & OOP with PHP

 
 

Design

Cursus resource for PHP programming.

 See the project on GitHub

Object-oriented Programming — OOP

En bref : (en cours de rédaction)

Principle

(en cours de rédaction)


SOLID properties

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

O : Open/Closed
Une classe doit pouvoir être étendue.
Eviter de modifier le code source préexistant.

L : Liskov Substitution
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 : Interface segregation
Définir plusieurs interfaces précises pour faciliter leur implémentation par les classes.
Eviter les interfaces généralisées.

D : Dependency inversion
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.

Model View Controller — 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 :

  • The models
  • The view
  • The contrôllers

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 Model View Controller — 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