Ho aggiunto un modulo di sviluppo locale (repository git separato) a Magento 2 usando collegamenti simbolici e funzionava bene fino a quando non ho colpito i modelli PHTML. Dopo un intenso debug ho scoperto che la classe di filesystem Magento 2 ( Magento\Framework\Filesystem\Directory\Read
) utilizza un isExists()
metodo combinato con una getAbsolutePath()
chiamata per vedere se esiste il modello PHTML. Tuttavia, il getAbsolutePath()
metodo controlla se esiste il percorso relativo all'interno del filesystem Magento 2 e, in caso contrario, antepone il root Magento 2 a. esso. Nel mio caso, il modulo vive in un repository separato /git/A
mentre Magento vive /site/B
e questo comportamento verifica l'esistenza di un modello PHTML in /site/B/git/A
.
In breve: i modelli PHTML che vivono al di fuori del filesystem di root di Magento 2 non vengono rilevati, indipendentemente dall'impostazione della configurazione del sistema "Consenti collegamenti simbolici" attivata. Sembra che l'impostazione stia funzionando, ma solo se l'origine del collegamento simbolico è ancora all'interno del filesystem Magento 2.
Qualcun altro ha riscontrato questo? Quale sarebbe il modo migliore per gestire lo sviluppo in un repository git esterno?