Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Exception Transformer Laravel Package

riper/exception-transformer

Exception Transformer for Laravel turns thrown exceptions into consistent, structured responses. Map exception types to custom transformers to control status codes, messages, and error payloads, so API error output stays predictable and your exception handlers stay clean.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Unchanged and still disqualifying. v2.0.0 confirms the package remains a Symfony bundle (RiperFr\ExceptionTransformerBundle) targeting the Symfony HttpKernel exception flow (kernel.exception event / HttpKernelInterface). Laravel has no equivalent kernel-event seam — exception handling is owned by App\Exceptions\Handler and the Illuminate\Foundation pipeline. The release notes do not mention Laravel, a service provider, a facade, or any framework-agnostic entry point. Architectural fit with a Laravel codebase remains none.

Integration feasibility. Still low, and the new version does not move the needle. The only integration-adjacent change is widened platform support (Symfony 4, PHP ≥ 7.4), which expands compatibility within the Symfony ecosystem but adds nothing for Laravel. A Laravel bridge would still require importing Symfony HttpKernel/EventDispatcher and re-implementing behavior Laravel provides natively (renderable(), custom renderers, report() overrides).

Technical risk. High, with two small offsets and several unchanged hazards:

  • Release signal is real but modest — v2.0.0 is a genuine versioned release with a BC contract, and migrating CI from Scrutinizer to GitHub Actions is a mild positive for process hygiene. This is the first evidence of any maintenance activity since 2021.
  • But the baseline it modernizes to is itself end-of-life — PHP 7.4 reached EOL in Nov 2022 and Symfony 4.4 in Nov 2023. A 2024-era major release that establishes PHP 7.4 / Symfony 4 as the new floor is a lagging indicator, not a leading one. Current Laravel 10/11 targets PHP 8.1/8.2 and Symfony 6/7.
  • BC break with no migration guide — the notes list three "BC" bullets and no upgrade path, changelog link, or deprecation notice. For a package on the error-handling path, that is a documentation gap directly on the highest-severity surface.
  • Zero signal persists — 0 stars, 0 dependents, score 0.03. A v2.0.0 with no adoption is not validation; it is an untested release.
  • Blast radius unchanged — exception transformation sits on the error path. Defects cause unhandled fatals, masked stack traces, or leaked internals: availability and security exposure.
  • Bus factor of one — no maintainer change, no security policy, no response process mentioned.

Key questions.

  1. Does v2.0.0 include any Laravel integration surface we missed (service provider, framework-agnostic transformer contract)? The notes suggest no — confirm.
  2. What user-facing problem are we solving (error normalization, API envelope consistency, PII scrubbing)?
  3. Can it be solved with Laravel's native Handler renderers and a small internal transformer class? (Expected: yes.)
  4. Does the PHP 7.4 / Symfony 4 floor conflict with our runtime, and will composer require resolve on PHP 8.2+ / Laravel 11?
  5. Is there a documented BC migration path for v1 → v2, and does it matter if we have no v1 footprint?
  6. Who owns the fork when the next PHP or Laravel upgrade breaks it?

Integration Approach

Stack fit. Still poor. The v2.0.0 release does not bridge the Symfony-bundle/Laravel-service-provider gap. It imports a foreign extension model (bundle registration, DependencyInjection compiler passes, YAML/XML config) that Laravel's bootstrap will not honor. Note the directional mismatch: the release raises the floor to PHP 7.4 while Laravel has moved past it, so compatibility is narrowing, not widening, relative to our stack.

Migration path. Not recommended, unchanged. If exception transformation is genuinely required:

  • Define an internal ExceptionTransformer contract with toArray() / normalize().
  • Wire it into App\Exceptions\Handler::register() or a renderable() closure.
  • For API surfaces, use Responsable or a response-preparation hook.
  • Keep framework-specific code behind the interface so it stays replaceable.

The v2.0.0 BC break is only a migration concern if we had a v1 footprint. We do not, so the practical effect is: no new reason to adopt, and no cost avoided either.

Compatibility. Still untested against Laravel 10/11 and PHP 8.2/8.3. The declared floor (PHP 7.4, Symfony 4) is below our runtime and below current symfony/* constraints; expect resolution friction and possible --ignore-platform-reqs, which remains a red flag for a production dependency. GitHub Actions CI is a positive signal but we cannot see what matrix it actually exercises — verify before treating it as evidence of 8.2/8.3 coverage.

Sequencing. Unchanged: (1) define the transformation requirement and sample payloads; (2) build the native Laravel transformer as the default path; (3) only on a hard blocker, spike this bundle in isolation for one sprint; (4) never sequence it ahead of the native implementation. Add one gate before the spike: confirm via composer why-not that the package resolves against our current Laravel/PHP matrix — recent activity does not imply current-matrix support.

Operational Impact

Maintenance. Marginally improved on paper, effectively unchanged in practice. There is now a tagged major release and modernized CI, which is better than the four-year silence the prior assessment assumed. But there is still a single upstream author, no stated security policy, no release cadence, and the new floor is already EOL software. Every future PHP or framework bump remains our migration project; the v2.0.0 BC break with no migration guide is a preview of that cost.

Support. None. No vendor, no SLA, no community traffic to mine. A v2.0.0 with zero dependents means any defect we hit is likely the first report and will land on our on-call engineers with no upstream recourse — on error handling, the highest-severity incident class.

Scaling. Performance is a non-issue (one transform per request). The organizational cost is unchanged: every engineer must learn a bespoke, framework-mismatched mechanism for behavior that is otherwise standard Laravel. A fresh major release makes this slightly more tempting to adopt and therefore slightly more expensive to justify later.

Failure modes. All prior modes persist; the release adds one:

  • Exception masking — a bad transformer swallows or rewrites errors, degrading Sentry/CloudWatch observability and extending MTTD.
  • Information disclosure — permissive transformation leaks stack traces or internal identifiers.
  • Hard failure on upgrade — framework upgrade breaks the bundle; error handling is the last subsystem that can fail open.
  • Dependency conflict — a PHP 7.4 / Symfony 4 floor may block unrelated composer update work across the repo.
  • Silent divergence — Laravel's native handler still owns reporting/rendering; two authorities produce unpredictable behavior.
  • New in v2.0.0: undocumented BC break — adopting at v2 with no v1→v2 guide means the upgrade contract is inferred from release notes, not specified.

Ramp-up. Low value, non-trivial cost, unchanged. The package is small enough to read, but its value proposition duplicates native capability. Onboarding effort is better spent documenting our own Handler conventions. Recommended disposition: do not adopt. The v2.0.0 release is a net-neutral signal — real but lagging activity on a package that still solves a Symfony problem we do not have. Solve exception transformation natively and revisit only if a concrete, unsolved requirement emerges that Laravel's pipeline cannot express.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums