v1.9.1
Immutable
release. Only release title and notes can be modified.
Fixed
EloquentNPlusOneAnalyzerno longer flags loops ofupdateOrCreate/firstOrCreate/upsert— deliberate per-row writes rather than accidental read N+1 — nordatabase/seeders, migrations, or factories, where looping upserts is the idiomatic idempotent-seeding pattern (#252)MissingDocBlockAnalyzerno longer flags framework-contract methods (Mailable, FormRequest, queued Job/Listener, Middleware, EloquentScope,ValidationRule,Responsable, Console Command, Notification,JsonResource, Filament — each gated to its base class/interface so identically-named plain-class methods stay flagged), trivially self-documenting methods (single statement, or typed assignments feeding one return), or controller methods (every public method is a route action); recommendations now name only the tags a method actually needs (#253)ServiceContainerResolutionAnalyzerno longer false-positives onapp()/container use in framework-fixed contexts it previously missed — Eloquent globalScopeclasses, model-event closures (including traitboot{Trait}()methods), and middleware detected by theApp\Http\Middlewarenamespace or ahandle(Request, Closure)signature — and downgradesFormRequest::authorize()/rules()to Low since method injection there is possible via$container->call(); bindings stay flagged at High (#254)