Guard
mago guard applique les frontières architecturales et les conventions structurelles à travers un projet PHP. Il couvre le même terrain que deptrac et arkitect, dans un seul binaire fonctionnant sur le parseur de Mago.
L'outil a deux moitiés : le guard de périmètre valide les dépendances entre couches, et le guard structurel applique les conventions sur les symboles eux-mêmes.
Guard de périmètre
Le guard de périmètre valide les arêtes de dépendance. Il garantit que différentes parties d'une application ne se parlent que de manières que vous avez explicitement autorisées, de sorte que le domaine reste libre de fuites d'infrastructure et que l'UI ne puisse pas atteindre au-delà de la couche application.
Règles typiques :
- La couche
Domainne doit dépendre d'aucune autre couche. - La couche
UIpeut dépendre deApplicationmais pas l'inverse. - Un module spécifique n'est autorisé à utiliser qu'une liste approuvée de bibliothèques.
Guard structurel
Le guard structurel applique les conventions sur les symboles eux-mêmes : leurs noms, modificateurs, super-types, attributs et la forme de leur espace de noms contenant.
Règles typiques :
- Toutes les classes dans
App\Http\Controllersdoivent êtrefinalet se terminer parController. - Les interfaces sous
Domaindoivent se terminer parInterface. - Un espace de noms spécifique ne peut contenir que des définitions
enum.
Où aller ensuite
- Utilisation : les commandes courantes et à quoi ressemble leur sortie.
- Référence de commande : tous les indicateurs que
mago guardaccepte. - Référence de configuration : toutes les options que Mago accepte sous
[guard].