feat(bootstrap): Introduce Libs\Loader for directory loading

This commit is contained in:
kj
2025-10-11 10:44:20 -03:00
parent 7f62e06ff9
commit c8d7b69367
2 changed files with 41 additions and 7 deletions

View File

@@ -1,8 +1,11 @@
<?php
use Libs\Loader;
use Libs\Router;
require_once('config.php');
// Incluir clases
// Autocarga de clases
spl_autoload_register(function ($className) {
$fp = str_replace('\\', '/', $className);
$name = basename($fp);
@@ -13,11 +16,11 @@ spl_autoload_register(function ($className) {
}
});
// Incluir routers
$routers = glob(ROOT_CORE . '/Routers/*.php');
// Autocarga de routers
Loader::load(ROOT_CORE . '/Routers/');
foreach ($routers as $file) {
require_once($file);
}
// Otros autoloaders
Loader::load(ROOT_CORE . '/Autoload/');
\Libs\Router::apply();
// Correr los routers
Router::apply();

31
src/Libs/Loader.php Normal file
View File

@@ -0,0 +1,31 @@
<?php
namespace Libs;
/**
* Loader - DuckBrain
*
* Simple library to bulk load multiple php files inside a folder.
*
* @author KJ
* @website https://kj2.me
* @license MIT
*/
class Loader
{
/**
* Loads all PHP files from a specified directory.
* If the directory does not exist or is not a directory, no files will be loaded.
*
* @param string $directoryPath The path to the directory containing the PHP files to load.
* @return void
*/
public static function load(string $directoryPath): void
{
if (is_dir($directoryPath)) {
foreach (glob(rtrim($directoryPath, '/') . '/*.php') as $file) {
require_once($file);
}
}
}
}