Files
zampet-backend/public/index.php
Claudecio Martins c1184d2878 first commit
2025-11-04 18:22:02 +01:00

92 lines
3.0 KiB
PHP
Executable File

<?php
// ============================
// Configurações de erro
// ============================
ini_set(option: 'display_errors', value: 1);
ini_set(option: 'display_startup_errors', value: 1);
ini_set(option: 'log_errors', value: 1);
ini_set(option: 'error_log', value: __DIR__ . "/../app/Storage/Logs/php_errors.log");
error_reporting(error_level: E_ALL);
// Importa autoload do Composer
require_once realpath(path: __DIR__ . '/../vendor/autoload.php');
// ============================
// Namespaces usados
// ============================
use AxiumPHP\Core\Router;
use Zampet\Config\Config;
use AxiumPHP\Core\LoggerService;
use Zampet\Module\Auth\v0\Middlewares\AuthMiddleware;
// ============================
// Configurações globais
// ============================
$Config = Config::getInstance();
// ============================
// Define constantes do sistema
// ============================
const ROUTER_MODE = 'JSON';
const APP_SYS_MODE = 'DEV'; // PROD = Production, DEV = Development
define(constant_name: 'ROOT_SYSTEM_PATH', value: realpath(path: __DIR__ . "/.."));
define(constant_name: 'INI_SYSTEM_PATH', value: realpath(path: __DIR__ . "/../app"));
define(constant_name: 'MODULE_PATH', value: realpath(path: __DIR__ . "/../app/Module"));
define(constant_name: 'STORAGE_FOLDER_PATH', value: realpath(path: __DIR__ . "/../app/Storage"));
// ============================
// Inicializa LoggerService
// ============================
LoggerService::init(
driver: LoggerService::DRIVER_FILE,
logDir: __DIR__ . '/../app/Storage/Logs'
);
// ============================
// Define origens permitidas
// ============================
const ROUTER_ALLOWED_ORIGINS = [
'*'
];
// ============================
// Define fuso horário
// ============================
date_default_timezone_set(timezoneId: $Config->get(key: "SYSTEM_TIMEZONE"));
// ============================
// Inicia sessão se necessário
// ============================
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
// ============================
// Inicializa o roteador
// ============================
new Router();
// ============================
// Carregamento de Módulos Essenciais do sistema
// ============================
require_once MODULE_PATH . '/Auth/v0/bootstrap.php';
Router::group(
prefix: '/module',
callback: function() {
// Carrega módulo do Tutor
require_once MODULE_PATH . '/Tutor/v0/bootstrap.php';
},
middlewares: [
AuthMiddleware::class."::handle"
]
);
// ============================
// Dispara o roteador
// ============================
// Só dispara Router se for uma requisição web
if (php_sapi_name() !== 'cli') {
Router::dispatch();
}