Come strutturare una piattaforma con subapp in Laravel 4?

Ho bisogno di sviluppare diversi siti web con caratteristiche e flussi comuni, l'unica cosa che cambierà drasticamente è il CSS, anche l'HTML sarà comune.

Ho problemi a assemblare questa struttura in Laravel 4, dato che sono ancora un mendicante nel framework.

  • Ho bisogno di avere un "super progetto" da cui erediteranno tutti i "sottoprogetti".
  • Devo essere in grado di implementare funzionalità e flussi personalizzati in uno specifico "sottoprogetto".
  • Devo separare each progetto nel proprio repository GIT.

Mi piacerebbe avere un'opinione su qualcuno che ha già dovuto creare tale struttura.

Grazie in anticipo!

È ansible utilizzare la function pacchetto , prima di tutto è necessario creare un pacchetto kernel come progetto di base e quindi estendere i "sottoprogetti" dal proprio repository git, è un modo semplice, come dice l'introduzione di Laravel:

"I pacchetti potrebbero essere qualsiasi cosa, da un ottimo modo per lavorare con date come Carbon o un integer framework di test BDD come Behat."

Con i pacchetti è ansible individuare ciascuna function su composer.json e caricarli uno per uno.

Supponendo che sia necessario il repository Git separato, un approccio potrebbe essere quello di avere una cartella "app" per ciascun progetto più uno per il progetto principale. Vale a dire:

  • App
  • Subapp1
  • Subapp2

Quindi è necessario aggiungere un autoloader che controlli se il file specificato è presente nella cartella subapp. In caso contrario, caricare dalla cartella dell'app. In questo modo è ansible centralizzare i file delle app, ma anche creare altri file personalizzati o sovrascrivere i file app tramite le sottocartelle. Ogni cartella subapp può quindi essere un singolo repository Git, mentre la cartella root escludendo le cartelle subapp è il repository principale.

La configuration e il routing verrebbero gestiti tramite l'app principale.

È anche ansible aggiungere spazi dei nomi o una struttura di estremità della cartella simile per controllare più in dettaglio quali funzionalità sono personalizzate dalle sottoapp, senza wherer eseguire l'override di un integer controller o model dall'app.