Antes que te metas en "aguas profundas" (como el tema MVC
) lo que tienes que tener en cuenta que una arquitectura de 3 capas se puede hacer perfectamente con 3 directorios, donde en cada uno colocas clases que hace una taréa específica de acuerdo a la responsabilidad de esa capa.
Es decir, podrías tener algo como:
presentación/
-> Html.class.php
dominio/
-> Persona.class.php
persistencia/
-> PersonaPersistente.class.php
-> BaseDeDatos.class.php
La diferencia entre las clases "Persona" es que en dominio solo trata cosas de más alto nivel relacionadas con la "lógica de negocio" pero cuando quiere persistir información o recuperarla, habla con su par "Persona" de la capa de persistencia, que resuelve todo lo que tiene que ver con la base de datos y la "persona".
Es un "pasamanos", pero te aseguras que en cada capa se haga una actividad concreta distinta de la otra.
presentación -> dominio -> persistencia
En algún momento verás que parecerá "redundante" pero el tema es que será así cuando el sistema es muy pequeño, pero cuando entres a crecer, será fundamental para bajar y tener contenido el crecimiento de la complejidad.
Nota: otro agregado que se puede hacer es una clase "fachada" que recibe todas las peticiones sobre la capa / paquete y las contesta, simplificando la dependencia contra muchas clases del paquete (siempre alquien que use el paquete irá contra la fachada).