<?php
/*
* Copyright 2017-08-31 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() {
spl_autoload_register('Autoload::cargarClasesPrincipales');
self::cargarModelos(DIR_MODELOS);
}
public static function cargarClasesPrincipales($clase) {
include './libs/sistemas/' . $clase . '.php';
}
public static function cargarModelos($directorio) {
if (is_dir($directorio)):
$listDireccionCarpetas = self::buscarCarpetas($directorio);
$listArchivos = self::buscarArchivos($listDireccionCarpetas);
foreach ($listArchivos as $archivo):
if (is_file($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 . '/');
array_merge($listDireccionCarpetas, self::buscarCarpetas($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('.', '..'))):
array_push($listArchivos, $carpetas . $clase);
endif;
endforeach;
endif;
endforeach;
return $listArchivos;
}
}
Autoload::start();