<?php
/*
* Copyright 2017-09-07 Cámara de Comercio de Santa Marta para el Magdalena.
* Autor: Luis Montoya <lmontoya@ccsm.org.co at www.ccsm.org.co>.
* Archivo: Autoload.
*
* Licenciado bajo la Licencia Apache, Versión 2.0;
* Usted no puede usar este archivo excepto en conformidad con la Licencia.
* Usted puede obtener una copia de la Licencia en
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* A menos que sea requerido por la ley aplicable o acordado por escrito, el software
* Distribuido bajo la licencia se distribuye en una "AS IS" o "COMO ESTA" BASE,
* SIN GARANTÃ�AS NI CONDICIONES DE NINGÚN TIPO, expresas o implÃcitas.
* Consulte la Licencia para los permisos y Limitaciones bajo la Licencia.
*/
/**
* Description of Autoload
*
* @author Luis Montoya <lmontoya@ccsm.org.co at www.ccsm.org.co>
*
*/
class Autoload {
//put your code here
public static function start() {
Autoload::cargarModelos(DIR_LIBRERIA . 'clases/');
Autoload::cargarModelos(DIR_LIBRERIA . 'clases/conexiones/');
Autoload::cargarModelos(DIR_LIBRERIA . 'sistema/');
spl_autoload_register('Autoload::cargarClasesPrincipales');
//self::cargarModelos(DIR_MODELOS);
}
public static function cargarClasesPrincipales($clase) {
// $dirClase = './libs/sistemas/' . $clase . '.php';
// if (is_file($dirClase)):
// include $dirClase;
// else:
$dirModelo = self::buscarModelos($clase);
if (is_file($dirModelo)):
include $dirModelo;
endif;
// endif;
}
public static function buscarModelos($clase) {
$listDireccionCarpetas = self::buscarCarpetas(DIR_MODELOS);
foreach ($listDireccionCarpetas as $directorio):
$dirModelo = $directorio . $clase . '.php';
if (is_file($dirModelo)):
return $dirModelo;
endif;
endforeach;
}
public static function cargarModelos($directorio) {
if (is_dir($directorio)):
$listArchivos = self::buscarArchivos(array($directorio));
foreach ($listArchivos as $archivo):
require_once $archivo;
endforeach;
$listDireccionCarpetas = self::buscarCarpetas($directorio);
$listArchivos = self::buscarArchivos($listDireccionCarpetas);
foreach ($listArchivos as $archivo):
require_once $archivo;
endforeach;
endif;
}
private static function buscarCarpetas($directorio) {
$listDireccionCarpetas = [];
if (is_dir($directorio)):
$openDirectorio = scandir($directorio);
foreach ($openDirectorio as $key => $componente):
if (!in_array($componente, array('.', '..'))):
if (is_dir($directorio . $componente)):
array_push($listDireccionCarpetas, $directorio . $componente . '/');
endif;
endif;
endforeach;
endif;
return $listDireccionCarpetas;
}
private static function buscarArchivos($listDireccionCarpetas) {
$listArchivos = [];
foreach ($listDireccionCarpetas as $carpetas):
if (is_dir($carpetas)):
$openCarpetas = scandir($carpetas);
foreach ($openCarpetas as $key => $clase):
if (!in_array($clase, array('.', '..'))):
if (is_file($carpetas . $clase)):
array_push($listArchivos, $carpetas . $clase);
endif;
endif;
endforeach;
endif;
endforeach;
return $listArchivos;
}
}
Autoload::start();