Hexagonal Architecture avec Zend Expressive


Florent Blaison
Développeur Back-End





Microframework


Router
Conteneur de dépendances
Moteur de template
Gestionnaire d'erreurs
Configuration
Router


Aura.router
FastRoute (par défaut)
Zend Router
Conteneur de dépendances


Aura.Di
Pimple
Zend ServiceManager (par défaut)
Compatible PSR-11
Auryn
Symfony DI Container
Moteur de template


Plates
Twig
Zend View
Aucun (par défaut)
Gestionnaire d'erreur


Configuration
Interoperabilité


PSR-11 (Conteneur)
PSR-7 (Message HTTP)
PSR-15 (Middleware)
Orienté Middleware



2 interfaces
RequestHandlerInterface
MiddlewareInterface
Image tirée de la présentation d'Enrico Zimuel
Chainage de Middleware




Image tirée de la présentation de Thomas Dutrion
Agnostique


Router
Gestionnaire de dépendances
Moteur de template
Architecture Hexagonale




Attention !!


Ce n'est pas la solution miracle
Modèle de données anémique
Architecture Hexagonale


Testabilité
Flexibilité
Préserve le modèle
Concept



Concept



Inversion de dépendances


1 Principe SOLID : Dependency Inversion Principle

Architecture 3-Tiers


Présentation
Métier
Persistance
Architecture Hexagonale


Présentation
Métier
Persistance
Exemple avec Zend Expressive


Merci





Hexagonal Architecture avec Zend Expressive
Zend Expressive
By Florent Blaison
Zend Expressive
- 1,469