Tag Archives: Design Pattern

Domain Driven Design, DDD pour les intimes

Préface d’une Lightning Talk en demi teinte.

Dernièrement j’ai accepté un défi fou : celui de parler de Domain Driven Design lors d’une conférence (PHP Tour 2012 organisé par l’AFUP) de…. 5 minutes. Vraiment fou, et pas une franche réussite. A trop vouloir insister sur l’importance des concepts sous-jacents, j’ai épuisé mon temps avant d’avoir pu faire passer tous les messages que je voulais. Pour me faire pardonner, voici tout ce que je souhaitais dire en 5 minutes.

Vous avez donc dit DDD ?

A la lecture du titre, vous pouvez penser « encore un acronyme à la signification abstraite ».

Pourtant, passé cette première réaction, il s’avère que DDD porte de nombreuses valeurs, sauf celle de se compliquer le quotidien. Je vais essayer de détailler rapidement l’essence du « Domain Driven Design », en utilisant un brin de mon expérience sur le sujet.

Lire la suite »

Programmation Orientée Aspect & PHP

L’AOP (Programmation Orientée Aspect) est un concept relativement répandu dans le monde Java ou deux acteurs majeurs proposent leur vision :

En PHP, jusqu’à ce jour, aucun projet n’a réellement vu le jour pour permettre aux développeurs de profiter de ce paradigme, si ce n’est peut être Flow 3 qui le propose à ses utilisateurs (mais cela implique l’utilisation de l’ensemble du framework), ou Symfony via un plugin dédié, qui présente les mêmes inconvénients.

Mais ça, c’était avant

Lire la suite »

Le Design Pattern Annuaire de services (Service Locator) en PHP

Le motif de conception Service Locator fait parti des patterns qui promulguent le principe d’inversion de contrôle, aussi connu sous le nom du « principe d’Hollywood » (Ne nous appelez pas, on vous rappellera).

Le Service Locator est un composant (souvent réalisé sous la forme d’un Registre) configuré pour distribuer des services aux autres objets.

Ce que l’on cherche à éviter est qu’un objet A ait besoin d’instancier lui même un objet B pour remplir son contrat en tant qu’objet A.

J’avoue n’avoir jamais rencontré de traduction française pour ce modèle de conception, je prendrais donc la liberté de le dénommer « Annuaire de services » qui me semble à propos.

Pour notre exemple, nous allons réaliser une classe de Log sans et avec ce principe.

Lire la suite »

Le Design Pattern Monteur (Builder) en PHP

Le monteur (builder) est un modèle de conception souvent mal compris, confondu avec d’autres patterns de type construction.

L’objectif du monteur est de séparer le processus de construction de l’objet de sa représentation finale. En d’autres termes, cela signifie que le processus de construction est identique mais que le produit finit peut varier.

Lire la suite »

Le Design Pattern Registre (Registry) en PHP

Le Registre est un design pattern décrit dans l’excellent livre de Martin Fowler, Patterns of Enterprise Application Architecturecommunément désigné sous le terme PoEAA (Pas de traduction française).

La définition du registre est simple : c’est un objet « bien connu » qui permet aux autres de récupérer d’autres objets ou services.

Nous allons voir ici deux implémentations courantes du Registre en PHP.

Lire la suite »