Ver Mensaje Individual
  #5 (permalink)  
Antiguo 12/05/2008, 07:59
Avatar de enriqueplace
enriqueplace
 
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años, 6 meses
Puntos: 32
Re: include / import

"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 .
__________________
Blog phpsenior.com Cursos a Distancia surforce.com