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

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

Zend Expressive

By Florent Blaison