terminal42/service-annotation-bundle
A Symfony bundle that lets you define and configure dependency-injection services using PHP annotations, reducing boilerplate YAML or XML. Annotate classes to register services, tags, and dependencies automatically.
Architecture fit: Mismatch worth flagging up front — this is not a Laravel package. terminal42/service-annotation-bundle is a Symfony bundle providing annotation/attribute-driven service registration against Symfony's DI container. Laravel's container has no bundle/extension-point analogue, so the only realistic way this enters a Laravel estate is as a transitive dependency of an embedded Symfony kernel or a legacy Contao/Symfony module. That is an unusual architecture and should be treated as an exception, not a pattern.
The release itself (1.1.6): A single change — widening the Symfony constraint to allow Symfony 7 (PR #9). No breaking changes, no API changes, no deprecations, no new features. This is a patch-level compatibility relaxation and is safe to absorb.
Integration feasibility: Low for a Laravel-first codebase; adequate for Symfony 6.4/7.x. Installation is Composer-level only (no Laravel package discovery), and it requires a Symfony kernel to be meaningful. Practically: only worth evaluating if we already have a Symfony surface.
Technical risk: Low at the change level. The risk direction is notable — widening a constraint means Composer can now resolve this package into Symfony 7 applications where it was previously excluded. The blast radius is "newly installable" rather than "changed behavior," which is the safer direction, but it does mean the package may surface in contexts it was never tested against in our estate. Portfolio-level risk is the real concern: single maintainer, low release velocity, maintenance-mode cadence.
Key questions:
Stack fit: Poor for Laravel-only. Adequate for Symfony 6.4/7.x. The first decision is scoping — whether this package belongs in our supported surface at all — not how to integrate it.
Migration path: None required. 1.1.6 is a constraint relaxation; consumers on 1.1.5 upgrade with zero code changes. Any "migration" is opportunistic: teams pinned below Symfony 7 gain an option, but this package is not the driver of that decision and should not be sequenced as if it were.
Compatibility: Adds Symfony 7 alongside existing 6.x support. Verify the PHP floor and that co-pinned dependencies also accept Symfony 7 — otherwise the widening is inert and the upgrade buys nothing.
Sequencing:
composer why / composer depends). If unreachable, no action beyond tracking.Maintenance: Maintenance-mode package. One PR, one contributor, patch-level release. Budget for "it works and nobody touches it," not for an active roadmap or feature investment.
Support: Community-only, no vendor SLA. Escalation is upstream issues/PRs. Assume we may need to fork or vendor-patch if this ever becomes load-bearing — and price that contingency in before adopting.
Scaling: Negligible. This is a container-compile-time concern, not a request-path concern. No scaling risk in either direction.
Failure modes: The most likely failure is resolution, not runtime — future Symfony majors may again be excluded until a volunteer files the PR, silently blocking our upgrade path. Secondary risk is maintainer abandonment, which for a single-maintainer package is a standing condition rather than an event.
Ramp-up: Near-zero once installed; the underlying concept is familiar to any Symfony developer. For a Laravel-only team, ramp-up is effectively "don't" — the knowledge does not transfer to Laravel's container, and that non-transferability is itself the strongest argument against adoption.
How can I help you explore Laravel packages today?