Il modo in cui lo abbiamo fatto nelle aziende a cui ho lavorato è che abbiamo una riga di codice comune nel controllo del codice sorgente. È qui che vive l'80% del codice. È funzionale al 100% e potrebbe essere implementato da solo, se necessario. È come il sito web di vanilla.
Quando arriva un nuovo sito web che deve essere costruito su questa base, diramo il codice dalla linea comune in un nuovo progetto. Tutte le personalizzazioni sono fatte in quel ramo con le versioni che arrivano da lì.
Se un bug nel codice comune viene scoperto in un progetto, viene risolto nella riga comune e quindi inviato a tutti i progetti in modo che tutti i progetti ottengano la correzione. Non si spinge mai da un sito di progetto a codice comune, si spinge sempre dal codice comune verso i siti di progetto.
Come scuoiare un sito. Usare i CSS aiuta molto. Seguo il blog di Jeff Atwood, Coding Horror, e ha realizzato un post che ci ha davvero aiutato. È stato come mi è stato presentato di meno. Va in che modo la rete Stack Exchange è in grado di skinare i loro siti in modo rapido e semplice.
Puoi trovare il post qui. Non sono certo se c'è un modo per usarlo in php, ma è qualcosa da esaminare. È stato un risparmiatore di vita per noi nella mia attuale compagnia.