function core_load_modules($modulos, $app)
{
    foreach ($modulos as $moduleName) {
        core_autoload(BASEPATH . '/modules/' . $moduleName);
        // obtem todas as classes que devem ser instanciadas
        $autoInstanceFiles = core_get_file_by_dir(BASEPATH . '/modules/' . $moduleName . '/Controllers');
        foreach ($autoInstanceFiles as $instanceFiles) {
            $moduleClassName = '\\Modules\\' . $moduleName . '\\Controller\\' . $instanceFiles;
            if (class_exists($moduleClassName)) {
                new $moduleClassName($app);
            }
        }
    }
}
    error_reporting(0);
    define("ENVIRONMENT", "prod");
    define("DEBUG", FALSE);
    require_once "config/config.prod.php";
} else {
    die("Nenhum arquivo de configuração encontrado");
}
// Carrega outras configurações / funções
require_once "autoload.php";
// obrigatório
if (file_exists("mimes.php")) {
    require_once "mimes.php";
}
if (file_exists("doctypes.php")) {
    require_once "doctypes.php";
}
// Define os módulos utilizados
$modulos = array('Base', 'Api', 'Clientes', 'Categorias', 'Produtos');
// Inicia aplicação
$app = new Silex\Application();
$app['debug'] = DEBUG;
// Inicia os controllers
foreach ($modulos as $modulo) {
    core_autoload(BASEPATH . '/modules/' . $modulo);
    $className = '\\Modules\\' . $modulo . '\\Controller\\' . $modulo;
    if (class_exists($className)) {
        new $className($app);
    }
}
// Roda a aplicação
$app->run();