zoltanlaca/eh-symfony
zoltanlaca/eh-symfony is a Symfony PHP package by Zoltan Laca, installable via Composer. It is intended for use in Symfony applications and aims to provide straightforward setup within existing projects. See the repository for supported features and configuration details.
Architecture fit
zoltanlaca/eh-symfony sits in the Symfony component layer that Laravel consumes transitively (HttpFoundation, HttpKernel, Console, EventDispatcher). Its architectural relevance to a Laravel estate is therefore indirect: it is a dependency-of-a-dependency rather than an application-level package we would adopt deliberately. The v1.1.0 release — Symfony 7 compatibility only — is a compatibility-maintenance signal, not a capability change. It tells us the maintainer is still tracking upstream, which is the single most important health indicator for a package in this position.
Integration feasibility
Low effort, high uncertainty. Integration is via Composer resolution, so the work is constraint algebra rather than code: confirm the package's Symfony constraint now admits ^7.0, confirm no other dependency pins it to ^6.x, and run the existing test suite plus a staging boot. The absence of a documented Laravel/Symfony support matrix in the release note is the main friction — we cannot infer PHP minimums, LTS coverage, or which Symfony components are actually touched without reading composer.json and the diff.
Technical risk
Key questions
composer.json require for php and symfony/* in v1.1.0 versus v1.0.4 — constraint-only or code changes?v1.0.4...v1.1.0) touch runtime logic, or is it metadata only?Stack fit Strong fit for Laravel 11+ estates, which already run Symfony 7 components; the release removes a blocker rather than adding a feature. For Laravel 10 / Symfony 6.4 LTS services, v1.1.0 is a no-op at best and a constraint conflict at worst. Treat adoption as conditional on the host framework's Symfony major, not as a fleet-wide upgrade.
Migration path
composer why zoltanlaca/eh-symfony) across all repositories.php and symfony/* constraints before and after.composer update zoltanlaca/eh-symfony --with-dependencies --dry-run to surface resolution conflicts without touching the lockfile.Compatibility Confirm three axes explicitly: PHP floor (Symfony 7 implies 8.2+, which may strand older runtime images), Laravel major (11.x aligns with Symfony 7; 10.x does not), and whether Symfony 6.x remains supported in v1.1.0. If 6.x support was dropped, this is a breaking change and must be treated as a major-version-style migration despite the minor semver bump — a common and under-appreciated semver hazard when a package's compatibility matrix is narrower than its version number suggests.
Sequencing Do not lead with this package. Sequence it behind the Laravel 11 / Symfony 7 framework upgrade; v1.1.0 is a follower, not a driver. If the framework upgrade is already complete, adopt v1.1.0 opportunistically during routine dependency hygiene. If it is not, pin to v1.0.4 and add a tracking item. Either way, land it in a dedicated dependency PR separate from feature work so a rollback is a single revert.
Maintenance Near-zero ongoing cost if it resolves cleanly; the burden is periodic, not continuous — a constraint bump every Symfony major. Budget one review cycle per Symfony major (roughly annual) and fold it into existing dependency-refresh cadence rather than creating a bespoke process. The real maintenance question is the maintainer's, not ours: single-maintainer projects with a two-year release gap are the profile that generates emergency migrations.
Support No commercial support, no vendor SLA. Internal support load is limited to "why did Composer fail to resolve" during upgrades, which is diagnosable. Assign a named owner for dependency-graph questions so resolver conflicts do not bounce between teams. Document the resolved version in a dependency inventory so future upgrades have a known-good baseline.
Scaling
Scales trivially in the technical sense — it is a library with no runtime capacity profile. The scaling concern is organisational: as the number of services grows, divergent resolved versions of the same transitive package multiply the matrix that must be tested. Standardise via a shared base image and a common composer.json constraint set to keep the matrix at one or two rows.
Failure modes
--dry-run in CI.Ramp-up Minimal engineer time — under half a day for the first adopter including verification, near-zero for subsequent services once the pattern is known. No training required. The ramp-up cost is almost entirely in the investigation step (reading the diff, mapping consumers), which is why it should be done once, centrally, and recorded, rather than repeated per team. Recommend a short written record: what the package does, who depends on it, which Symfony majors it supports, and the agreed upgrade trigger. That artifact costs an hour now and saves a scramble at the next major.
How can I help you explore Laravel packages today?