technical-reference · implemented
Provider — AppServiceProvider
Bootstrap global de Eloquent, Activity Log, migrations, locale, timezone e moeda.
Boot atual
- Associa
ActivityaActivityPolicy, instala observers Eloquent paraDatabaseNotificationeMediae acrescenta ator, conta e vínculo às propriedades de cada evento. O ator vem do vínculo ativo, da conta, determinalou desystemconforme o contexto. - Bloqueia atualização e exclusão de
Activitypelo Model e impedeactivitylog:cleanpara preservar o histórico sem recursão. A proteção não cobre SQL direto. - Guarda de comandos
migrate*: bloqueia migrations, rollback, refresh, reset e instalação fora de PostgreSQL. Model::preventLazyLoading(! app()->isProduction()): denuncia lazy loading em desenvolvimento/testes e deixa produção sem essa proteção.setlocale(LC_ALL, config('app.locale').'.UTF-8'): define locale do processo.date_default_timezone_set(config('app.timezone')): define timezone padrão do PHP.Number::useCurrency(config('app.currency')): define moeda padrão paraNumber.Number::useLocale(config('app.locale')): define locale padrão para formatação numérica.
O DateHelper depende do timezone da configuração; o CurrencyHelper usa defaults compatíveis, mas aceita sobrescrita.
Checklist
- Configurar autoria e metadados de conta/vínculo/sistema para eventos do Activity Log.
- Proteger o histórico contra alteração/exclusão Eloquent e desabilitar a limpeza do pacote.
- Auditar notificações e mídia por allowlist, sem copiar payloads privados.
- Ativar proteção contra N+1 fora de produção.
- Exigir PostgreSQL para comandos de migration.
- Configurar locale, timezone, moeda e números.
- Testar comportamento com locale/timezone usados no CI e produção.
- Confirmar que todos os ambientes possuem
app.currencydefinido. - Documentar exceções de performance antes de desativar
preventLazyLoading. - Não adicionar inicialização de domínio pesado neste Provider.