Configurações Multinível v3
Arquivos em subpastas de bootstrap/config/ viram notação ponto automaticamente.
Estrutura
bootstrap/config/
├── app.php → config('app.*')
├── system.php → config('system.*')
├── auth.php → config('auth.*')
└── api/
└── rate_limit.php → config('api.rate_limit.*')config('api.rate_limit.max_attempts');
config('auth.login_token_ttl_days', 30);
use MUCRM\engine\support\facades\config;
config::set('api.rate_limit.max_attempts', 120);Arquivos de config só retornam arrays — sem lógica.
Auth (API)
Chaves comuns em bootstrap/config/auth.php:
config('auth.token_prefix'); // mcrm_
config('auth.token_bytes'); // 40
config('auth.login_token_name'); // login
config('auth.login_token_ttl_days'); // 30 (null = não expira)
config('auth.cache_store'); // api_tokens
config('auth.cache_ttl_minutes'); // 5
config('auth.last_used_throttle_minutes'); // 5
config('auth.allowed'); // ['*'] ou listaEscrita permanente
use MUCRM\engine\support\config\config_write;
config_write::set('user.name', 'Admin');
config_write::setMany([
'user.name' => 'Admin',
'user.level' => 400,
]);Produção: config compilada
php mucrm cache:compileGera storage/framework/cache/config.php para leitura rápida sem varrer a árvore de configs a cada request.
💡Quando compilar
Após alterar configs em produção (ou no deploy). Em desenvolvimento local, o loader dinâmico basta.