Ver Mensaje Individual
  #8 (permalink)  
Antiguo 07/11/2006, 20:22
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Bueno para explicar como implementar algo asi es como crear un microframework, con lo basico:

- Archivo de Configuracion
- Archivo de Booteo (o Archivo de inicializacion)
- Directorios de Busqueda Predefinidos
- Directorios de Presentacion Predefinidos
- Script de Router para saber que clase cargar dependiendo del URL (patron MVC)

Lo que haces es que tu archivo de Booteo, cada que recibe un request, carga la configuracion, activa el router/dispatcher, lee el URL y activa el controlador y accion correspondientes.

Ya con esto tu controlador ya tiene a su disposicion el archivo de configuracion disponible, asi como en que directorio esta y es posible "importar" ahora si los paquetes que ese controlador va a trabajar.

Un layout posible de directorios seria:
Código:
/www/aplicacion/
      ..../index.php // Archivo de Booteo
      ..../configuracion/configuracion.php  // Archivo de Configuracion
      ..../controladores/ // Directorio de los controladores
      ..../vistas/ // Directorio con las vistas
      ..../aplicacion/ // Directorio con la aplicacion es aqui donde esta el "core"
      ..../aplicacion/com/empresa/ // Directorio base cuando se importa com.empresa.algo
      ..../aplicacion/com/empresa/subdirectorio/ // Subdirectorio para mostrar como se puede leer de cualquier subdirectorio
Una vez definido creamos nuestra funcion de import:
Código PHP:
import$class_path ) {
    
$class_path str_replace"."DIRECTORY_SEPARATOR$class_path );
    
$class_path BASE_DIR "/aplicacion/" $class_path// BASE_DIR puede estar definida en la configuracion.
    
require( $class_path ".php" );

Espero que sea claro jeje