Esperienze di OOP precedenti, anche con altri linguaggi? La dritta, o meglio, la consuetudine è l'applicazione del pattern MVC. Poi l'implementazione di uno strato di persistenza per interfacciarsi con il db (anche un framework già pronto con ZendFramework, se ne parla anche nel forum...) e per la vista un bel template tipo Smarty che aiuta ancora di più a separare vista da modello e controllo...
Buon lavoro