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.

» La suite…

Le Design Pattern Poids Mouche (Flyweight) en PHP

Suite à la rédaction d’un billet sur le sujet par Jean-François LÉPINE, j’ai décidé de publier plus vite que prévu l’article sur le modèle de conception « Poids Mouche » pour re-préciser son utilisation et sa définition.

Modèle du Poids Mouche

Qu’est-ce que le Poids mouche, quel est son objectif ?
L’objectif du poids mouche est de réduire la consommation mémoire d’un programme, en partageant des instances d’un même objet (souvent des « Value Objects ») fréquemment utilisés.

» La suite…

Opérateur $and dans MongoDB avec Doctrine ODM

Voilà quelques temps que j’utilise MongoDB en PHP par l’intermédiaire de Doctrine ODM.

Je passerais ici les multiples avantages de ces technologies pour me concentrer sur une limitation de la version actuelle de MongoDB (1.8) : l’absence de l’opérateur $and et la façon de le contourner.

Le problème est simple : Je dispose d’objets de type Element qui sont associés à un ou plusieurs Tags.
Je souhaite pouvoir effectuer une requête simple : Trouver tous les documents associés aux tags (1 ou 2) ET (3 ou 4). En l’état, MongoDB ne le permet pas.

» La suite…

Design Pattern Observateurs / Observables Vs Publish / Subscribe en PHP

Les observateurs font parti des Modèles de Conception qui visent à limiter la dépendance entre les objets. L’objectif est de permettre à un ou plusieurs objets de réagir aux messages d’autres objets, sans qu’ils ne soient connus à l’avance, sans devoir les lier « en dur » dans le code.

Nous verrons également dans ce billet le concept de Publication / Abonnement (Publish / Subscribe), concept dont l’implémentation peut être menée à bien par un système d’Observateur / Observable, sans que cela signifie que ces deux appellations soient équivalentes (comme on pourrait le penser à tord en parcourant le web).

» La suite…

Access to undeclared static property, PHP + APC

Un bref article qui pourra faire gagner quelques heures de recherches à ceux et celles qui rencontreraient un jour le problème.

Exposé de la situation : Vous avez une application en parfait état de fonctionnement, jusqu’au jour ou vous installez APC (magnifique extension, indispensable il va sans dire).

Résultat : D’un coup, un message d’erreur « Access to undeclared static property xxx in xxx »

Pourtant, tout dans votre code semble correct (et fonctionne sans APC).

» La suite…