Files

63 lines
1.8 KiB
PHP
Executable File

<?php
// Importa autoload do Composer
require_once realpath(path: __DIR__ . '/../vendor/autoload.php');
use Dotenv\Dotenv;
use KrothiumAPI\KrothiumAPI;
// Carrega variáveis de ambiente
$dotenv = Dotenv::createImmutable(paths: __DIR__ . '/..');
$dotenv->load();
// ======================================
// Inicializa KrothiumAPI com configs
// ======================================
KrothiumAPI::init(config: [
'app' => [
'mode' => $_ENV['APP_MODE'] ?? 'DEV', // DEV | PROD
],
'paths' => [
'root' => __DIR__ . '/..',
'src' => __DIR__ . '/../app',
'module' => __DIR__ . '/../app/Module',
'storage' => __DIR__ . '/../storage',
'component' => __DIR__ . '/../app/Common/Component',
],
'router' => [
'base_path' => $_ENV['ROUTER_BASE_PATH'] ?? '',
'allowed_origins' => ['*'],
],
'system' => [
'enable_session' => true,
'default_timezone' => 'America/Fortaleza',
],
'errors' => [
'error_log' => __DIR__ . '/../storage/Logs/php-error.log',
],
'logger' => [
'driver' => 'FILE',
'logDir' => __DIR__ . '/../storage/Logs'
],
'constants' => [
// Constantes extras específicas da aplicação, se precisar.
]
]);
// ======================================
// Registra Middlewares
// ======================================
use KrothiumAPI\Http\Router;
use WorkbloomERP\Middleware\AuthMiddleware;
use WorkbloomERP\Module\Auth\Routes as AuthRoutes;
Router::defineMiddleware('auth', [AuthMiddleware::class, 'handle']);
// ======================================
// Importa rotas dos módulos
// ======================================
AuthRoutes::register();
// ============================
// Dispara o roteador
// ============================
KrothiumAPI::routerDispatch();