Site

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 lista

Escrita 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:compile

Gera 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.