fix: disable Laravel listener auto-discovery; explicit registrations only
Auto-discovery + explicit Event::listen() runt observability listeners twee keer per event (verified via php artisan event:list duplicate entries). Vandaag idempotent vanwege scope-tag overwrite semantics, maar architecturaal onacceptabel — toekomstige additive listeners zouden onmiddellijk breken zonder waarschuwing. Optie A (Bert bevestigd, RFC-WS-7 OBS-8): expliciete registraties behouden in AppServiceProvider::boot(), auto-discovery globaal uit via ->withEvents(discover: false) in bootstrap/app.php. Reden: explicit > implicit voor observability-kritische bindings — grep-baar, IDE- navigeerbaar, direct zichtbaar bij code review. TagJobAttemptOnSentry registratie ook van class-string naar array- callable vorm gebracht zodat event:list de gebonden methode toont (consistent met AuthScopeContextListener-registraties). Test count ongewijzigd op 1544. Larastan + Pint clean. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -22,6 +22,14 @@ return Application::configure(basePath: dirname(__DIR__))
|
||||
health: '/up',
|
||||
apiPrefix: 'api/v1',
|
||||
)
|
||||
// Listener auto-discovery uitgeschakeld — observability listeners (en
|
||||
// alle andere listeners) worden expliciet geregistreerd in
|
||||
// AppServiceProvider::boot(). Reden: silent double-registration is
|
||||
// mogelijk wanneer auto-discovery + explicit listen samen lopen, en
|
||||
// expliciete registratie is grep-baar / IDE-navigeerbaar / direct
|
||||
// zichtbaar bij code review. Onder enterprise-grade observability is
|
||||
// impliciete discovery een stille fault-mode (RFC-WS-7 §3.6, OBS-8).
|
||||
->withEvents(discover: false)
|
||||
->withMiddleware(function (Middleware $middleware): void {
|
||||
// API uses token-based auth, no CSRF needed
|
||||
|
||||
|
||||
Reference in New Issue
Block a user