Tienes que ir un poco más allá. Si quieres orientar a ojetos tu aplicación, seguramente no debas usar CakePHP, por ejemplo. Esto es debido a que, aunque a nivel de código sí uses POO (cada vista, modelo y controlador es una clase), en realidad no estás orientando tu aplicación a objetos.
Te comento una aproximación que sigo en mis proyectos últimamente. Como en cualquier software, debes decidir y definir las capas en que se compondrá tu sitioi web. El primer paso es definir con qué objetos vas a trabajar. Por ejemplo, si vas a hacer un catálogo de coches de segunda mano, seguramente tus objetos de negocio son coche, persona (para compradores/vendedores), concesionario, etc. Estos son los objetos que principalmente vas a tratar, y que seguramente puedas definir fácilmente accediendo a tu base de datos y observando su estructura. Con esto ya tenemos la capa de objetos de negocio
Después de definir estas clases debes crear una capa para el acceso a datos. Las clases y métodos que crees aquí accederán a la base de datos y trabajarán con los objetos de negocio, de tal modo que SÓLAMENTE EN ESTA CAPA se ejecuten consultas SQL. Por ejemplo, getCochesPorCuidad($nombreCiudad), editarOferta(Oferta $oferta). Estos métodos conectan BD con objetos, de forma transparente a las capas que hay por encima y por debajo. Esta metodología se llama DAO, Data Access Object (
http://es.wikipedia.org/wiki/Data_Access_Object).
Después viene la interfaz. Aquí puedes usar un motor de plantillas (ayudan mucho, yo no sé qué haría sin ellos) como Smarty o PHPTAL (
http://www.israelviana.es/blog/post.php?id=35) para generar HTML/CSS/JavaScript de forma más limpia. En esta capa definirás los módulos funcionales del sitio web, por ejemplo Inicio, Búsqueda, VerOferta o Login. Por ahora no entraré en detalles de cómo definirás esto, aunque lo más básico es hacer un script no orientado a objetos por cada módulo, como seguramente tendrá ahora. Lo bueno de PHP es que te permite combinar orientación a objetos y no-OO lo que permite entender bastante bien el funcionamiento del código.
Como podrás ver, esta metodología se parece bastante al MVC. Personalmente utilizo en mis aplicaciones 5 ó 6 capas, entre las que se encuentran éstas.
Para el tema de login, como para muchos otros, debes tener presente que Java se ejecuta sólo en el escritorio y los sitios web siguen modelos cliente-servidor, donde el cliente tiene HTML/CSS/JS y el servidor, PHP. Esto, unido a que HTTP no es un protocolo orientado a conexiones (como sí podría ser una aplicación de escritorio, aunque fuesen conexiones "virtuales"), impide trabajar con temas como Autenticación de forma similar. Te aconsejo que, para las sesiones, sigas usando el método que usabas hasta ahora. Repito, PHP tiene la ventaja (a veces desventaja) de poder mezclar OO y no-OO, de tal forma que puedes ir migrando gradualmente tu aplicación.
Espero que te haya ayudado a empezar a formarte una idea de cómo sería un sitio web OO. Huelga decir que es una de las muchas maneras que hay, ya que el término "aplicación con OO en PHP" puede dar lugar a muchas interpretaciones. Últimamente escribo bastante sobre el tema en mi blog (
http://www.israelviana.es). Estoy preparando un post sobre cómo organizar los ficheros en una arquitectura de aplicación más o menos como te he comentado, y tener nuestro propio "framework" casero, para organizar la funcionalidad en módulos y vistas (
http://www.israelviana.es/blog/post.php?id=30).
Es un mundo inmenso la orientación a objetos en aplicaciones web. Me alegro de que entres en él, si tienes cualquier duda puedes contactar conmigo a través del blog, aunque tampoco soy ningún experto
Saludos.