Originariamente inviato da Dascos
Fai una "super classe" di gestione che si occupa di istanziare le connessioni al db, caricare le librerie di base (es. la classe di gestione che scrive/legge/aggiorna il db) e di fare tutti i lavori di base (recupero dei cookie, individuazione del browser e compagnia bella).
Crei una pagina index.php che è lo "smistatore" degli eventi dell'interfaccia grafica (diciamo un controllore che decide cosa fare in base a cosa l'utente chiede di "vedere").
Questo controllore inizializza la super classe che poi passi per referenza alle altre classi/gestori/controllori che ti servono.
La super classe contiene in sue variabili le connessioni al db, i cookie eccetera, che quindi avrai sempre a disposizione nelle altre classi.

In questo modo istanzi tutte le classi, anche quando non ti servono. Questo non è proprio il massimo dell'efficienza.
Partendo dall'assunto di base che sia meglio iniettare le dipendenze (che vuol dire semplicemente passare le classi ai costruttori delle altre classi) piuttosto che estendere le classi, la cosa migliore in questo caso è costruire un contenitore di servizi (o Dependency Injector Container). La cosa non è propriamente banale, quindi io consiglio di usare o quello di Zend Framework, che però non è ancora stabile, oppure quello di Symfony