Qual è il modo più manutenibile ed efficiente per progettare un'applicazione Web il cui scopo è ospitare e generare siti Web che possono essere personalizzati in una certa misura?
Ci sono molti di questi tipi di applicazioni in natura che generano tutti i tipi di siti, dai siti che ospitano le gilde di World of Warcraft ad altri siti che ospitano siti di matrimoni. La mia domanda è, qual è l'architettura di base su cui operano questi siti?
Immagino ci siano due modi per pensarci. Un set di codice centrale che tutti i siti dell'host sono in esecuzione e che agisce in modo diverso in base al sito visitato. In questo modo, quando il codice base viene aggiornato, tutti i siti vengono aggiornati simultaneamente.
Oppure, il codice per un singolo sito esiste in un silo e viene semplicemente replicato in una nuova directory ogni volta che viene creato un sito. Quando è necessario applicare un aggiornamento, il codice viene inviato a ogni silo del sito.
Nel mio caso, sto lavorando in PHP con il framework CodeIgniter, tuttavia la risposta non deve essere limitata a questo caso. Quale metodo (se esiste) crea un'architettura più manutenibile ed efficiente per gestire questo stile di applicazione web?