Sto costruendo un framework MVC per l'applicazione web. L'applicazione sarà composta da moduli che possono essere sviluppati separatamente. La classe AppKernel
(che è il punto di ingresso o CompositionRoot ) dell'applicazione estende la classe astratta Kernel
del framework in cui l'intera inizializzazione viene eseguita con l'aiuto di un contenitore DI.
Una directory del modulo contiene una sottodirectory config
composta essenzialmente da 3 file:
-
dependenciesInjections.php
-
routing.php
-
namespaces.php
Una volta eseguita la registrazione del modulo in AppKernel
, il framework deve raccogliere i suoi dati dai 3 file sopra. Ma ora che arrivo a quel punto mi chiedo ...
Diciamo che abbiamo 3 moduli chiamati A , B e C .
Ci sarebbero casi legittimi in cui il modulo B dovrebbe sovrascrivere ad esempio gli endpoint di una rotta (controller e azione) che il modulo A ha precedentemente registrato? In tal caso è possibile definire quale dare priorità, che sovrascrivere, dal punto di vista del framework?
O dovremmo vietare la possibilità che il modulo sovrascriva una rotta o un'iniezione di dipendenza che è stata registrata da un'altra?
Dovremmo lasciare che l'argomento venga gestito solo dall'utente del framework tramite AppKernel
?