"Importar" no existe en PHP, solo incluir o requerir. Yo te recomiendo para el caso de "objetos" hagas siempre un require_once, ya que pueden clases requerir la misma clase y con esto solo te ejecuta el primer requiere y no te da ningún error.
Una opción simple es crear un archivo de configuración tipo "configuracion.php" que defina las rutas relativas para las tres capas / paquetes. Luego, en cada paquete te creas un "configuracion.php" que apunte al real en la raiz ( require_once ('../configuracion'); ) y haces que todas las clases siempre requieran un configuracion.php en su mismo nivel (require('configuracion.php');).
Por consiguiente, no importa desde donde llames las clases, siempre irán al único configuracion.php y este define las rutas.
Y listo.
Si estás en Html.class.php puedes hacer:
[capa presentación] Código PHP:
<?php
require('configuracion.php');
require_once( DOMINIO . '/Usuario.class.php' );
class Html{
public function listadoUsuarios(){
$usuario = new Usuario();
$usuarios = $usuario->getAll();
// generación de html para el listado de usuarios
}
}
?>
[capa dominio] Código PHP:
<?php
require('configuracion.php');
require_once( PERSISTENCIA . '/UsuarioPersistente.class.php' );
class Usuario{
public function getAll(){
$usuario = new UsuarioPersistente();
return $usuario->getAll();
}
}
?>
[capa persistencia] Código PHP:
<?php
require('configuracion.php');
require_once( PERSISTENCIA . '/BaseDeDatos.class.php');
class UsuarioPersistente{
public function getAll(){
$bd = new BaseDeDatos();
return $bd->query('SELECT * FROM usuarios');
}
}
?>
Algo así, lo escribí en caliente, puede tener errores
.