Lorsqu'on réalise une application orientée objet en PHP, on se retrouve souvent confronté à des problématiques transversales (cross-cutting concerns en anglais), c'est-à-dire que notre code métier se retrouve vite entremêlé avec la gestion des droits, du cache ou encore du journal par exemple.
La Programmation Orientée Aspect (ou AOP) permet de s'affranchir de cette contrainte en isolant les responsabilités dans des aspects que le programmeur doit ensuite tisser à l'aide de points de jonction (join-points en anglais).
En d'autres termes, l’AOP va rendre possible à dire, de façon programmatique, “ce qui serait vraiment bien, c’est que chaque fois que l’on appelle doGetDataQqchose on regarde d’abord si cela n'existe pas déjà en cache”.
C'est désormais chose faite avec l'extension PECL AOP-PHP. Disponible sur GitHub et depuis peu dans les dépôts officiels PECL, cette extension permet la création de conseils ou advices qui sont la partie du code à exécuter, de points de jointures ou join-points qui caractérisent le lien entre l'advice et le déclencheur - par exemple la méthode dont l'appel va déclencher l'advice, et les points de rupture ou pointcut qui déterminent si le join-point va déclencher l'advice.
Pour découvrir les possibilités de cette extension ou apprendre à utiliser ses fonctions, une documentation utilisateur est mise à disposition ici.
Sources:
- l'article sur le blog de Gerald Croes
- le dépôt GitHub du projet
- la Programmation Orientée Aspects sur Wikipedia
Et vous ?
Allez-vous utiliser cette extension ou l'utilisez-vous déjà ?
Trouvez-vous cette initiative intéressante ou inutile ?
Partager