Comment implémenter le DDD et l'Architecture Hexagonale dans vos propres composants Joomla
- Détails
- Écrit par : Mr Alexandre J-S William ELISÉ
- Catégorie : Blog Technique API Joomla
-
Également disponible :
Api Adept : Votre Site Web. Augmenté.
Ne laissez pas les problèmes techniques TUER vos AMBITIONS...
___ ___ ___ _____ ___ ___
/ /\ / /\ ___ / /\ / /::\ / /\ / /\ ___
/ /::\ / /::\ / /\ / /::\ / /:/\:\ / /:/_ / /::\ / /\
/ /:/\:\ / /:/\:\ / /:/ / /:/\:\ / /:/ \:\ / /:/ /\ / /:/\:\ / /:/
/ /:/~/::\ / /:/~/:/ /__/::\ / /:/~/::\ /__/:/ \__\:| / /:/ /:/_ / /:/~/:/ / /:/
/__/:/ /:/\:\ /__/:/ /:/ \__\/\:\__ /__/:/ /:/\:\ \ \:\ / /:/ /__/:/ /:/ /\ /__/:/ /:/ / /::\
\ \:\/:/__\/ \ \:\/:/ \ \:\/\ \ \:\/:/__\/ \ \:\ /:/ \ \:\/:/ /:/ \ \:\/:/ /__/:/\:\
\ \::/ \ \::/ \__\::/ \ \::/ \ \:\/:/ \ \::/ /:/ \ \::/ \__\/ \:\
\ \:\ \ \:\ /__/:/ \ \:\ \ \::/ \ \:\/:/ \ \:\ \ \:\
\ \:\ \ \:\ \__\/ \ \:\ \__\/ \ \::/ \ \:\ \__\/
\__\/ \__\/ \__\/ \__\/ \__\/
About 9mn to read
COMMENT ÇA FONCTIONNE ?
Il y a 3 principales briques :
- 3 - Infrastructure : Code spécifique à votre CMS préféré (Drupal,Joomla,TYPO3,WordPress,etc...)
- 2 - Application : Code où vous mettez les Interfaces du patron de conception Repository, le Service Horloge pour modifier éventuellement le temps globalement
- 1 - Domain : Code où se trouve vos Value Objects, vos Entités votre Code Metier spécifique à votre Domaine
Je voudrais ajouter 2 autres "briques horizontales" qui peuvent être utilisées inter-briques à travers tous les "briques" 1, 2, ou 3 précedentes
- B - Bibliothèques : Bibliothèques PHP par exemple sur packagist.org
- A - Interne : Noyau PHP (ou n'importe quel language utilisé par votre composant. C'est ce sur ce quoi tout le reste dépends)
RÉSUMÉ:
Une brique PEUT dépendre d'elle-même et/ou des briques plus basses
EXEMPLE : Votre propre Agence Marketing Numérique
Vous souhaitez diffuser votre contenu simultanément sur Drupal, Joomla, TYPO3 and WordPress parce que
c'est ce que vos clients VIP utilisent. Donc vous embauchez 6 développeur.euses au courant des bonnes pratiques liées au DDD. Un d'entre eux utilise Joomla et est tombé sur cet article. Comment ces principes peuvent être appliqués dans un cas concret pour votre agence ?
-
3: Infrastructure
- Drupal
- Drupal specific code implementing Application layer code and/or using Domain layer code
- Joomla
- Joomla specific code implementing Application layer code and/or using Domain layer code
- TYPO3
- TYPO3 specific code implementing Application layer code and/or using Domain layer code
- WordPress
- WordPress specific code implementing Application layer code and/or using Domain layer code
- Your favorite CMS and/or Framework here
- CMS and/or Framework specific code implementing Application layer code and/or using Domain layer code
- Drupal
-
2: Application:
- VIPClient
- VIPClientRepositoryInterface
- VIPClientRepositoryServiceInterface
- ...
- ClockInterface (Could use PSR-20 from Libraries "horizontal" layer)
- VIPClient
-
1: Domain
- BusinessRules
- DeployArticlesToVIPClientsOnly
- ...
- DeployArticlesToVIPClientsOnly
- Common
- AbstractValueObject
- Name
- Company
- Role
- ...
- AbstractValueObject
- VIPClient
- Reward
- LifetimeCustomerValue
- ...
- Reward
- ...
- BusinessRules
-
B : Libraries layer
- composer packages, npm packages, ...
-
A : Internal layer
- PHP Core (the language), Javascript (the language), etc...
- Clics : 528