rundum/event-bundle
A Symfony bundle for adding events to your application. It provides Doctrine entities and ready-to-use controllers and templates for creating, organizing, and displaying event listings, with an extensible structure that fits existing Symfony projects.
Summary of the change: Release 0.1.13 adds a scan capability that walks the project directory to discover entity classes, and — critically — resolves entities correctly when a project configures multiple entity managers, rather than relying on a single implicit mapping.
Architecture fit
The package clearly occupies the class/entity discovery layer of a Laravel + Doctrine stack: it produces the list of entity classes that a Doctrine ORM integration (e.g. laravel-doctrine/orm) registers against entity managers. As a TPM this is a plumbing dependency — high leverage, low visible surface. It sits on the startup path (entity metadata must be known before the first query), so its correctness is a boot-time concern, not a feature-toggle concern. The multi-entity-manager support is the architecturally meaningful part: it signals the package is aimed at projects using per-connection or per-bounded-context EMs (multiple databases, or a read/write or module-separated model), which is exactly where hand-maintained entity path lists historically rot fastest.
Integration feasibility Low effort on paper: Composer install, optionally publish config, replace a manual entity-path list with a scan call. The real work is verification, not integration — confirming the scanner's notion of "an entity" matches the project's (annotations vs. attributes, inherited base classes, mapped superclasses, embeddables, non-entity repositories). Since there is no prior assessment and no data supplied for this review, treat integration effort as unvalidated: the only evidence available is a one-line changelog.
Technical risk
0.1.13, not ^0.1) and treat upgrades as reviewed changes.app//src/ tree it can become a measurable boot penalty.vendor path repositories, modules excluded for speed), are both plausible. Multi-EM support reduces misrouting risk but does not remove it.classmap-authoritative / optimize-autoloader in production can change what is discoverable). This is the single most likely production-only failure mode.Key questions to put to the maintainer / spike
scan cache its result, and where? What invalidates it — file mtime, a manual cache:clear, a dedicated command?composer install --classmap-authoritative and inside a vendor/-installed path repository?Stack fit
Fits any Laravel application already using Doctrine ORM, and is most valuable precisely in the multi-entity-manager case (multi-database, modular monolith, or read/write-split architecture). For a single-EM, single-app/Entities project the benefit is mild — it removes a config list you probably rarely edit — so the cost/benefit is weaker there. Prioritise adoption in the multi-EM service first; that is where the release note says the value is.
Migration path
0.1.13 in a branch.scan alongside the existing explicit entity paths where the package allows it, then diff the discovered set against the known set. Any difference is a finding, not a nuisance.Compatibility considerations
Confirm PHP and Laravel constraints against the application matrix before anything else; a pre-1.0 package frequently lags new Laravel majors. Verify behaviour under the production autoloader flags, and check whether the app's CI runs composer install --no-dev -o, since that is the environment most likely to differ from dev.
Sequencing Discovery/spike (half a day, one engineer) → diff-verification in CI → enable in a non-critical service for one release cycle → enable in the multi-EM service → remove manual path lists. Do not bundle this with a framework or Doctrine upgrade; keep the blast radius single-cause. If a Doctrine or Laravel major upgrade is already queued, land this first, on the current pinned versions.
Maintenance Ongoing cost is low but non-zero: exact-version pinning plus a deliberate review each time the version is bumped, which for a fast-moving 0.1.x line could mean a small review per month. Budget a recurring line item rather than a one-off. Ownership should sit with whoever owns the Doctrine/ORM configuration, not with application feature teams.
Support Unverified. The package appears to be early-stage with a narrow feature surface; expect community-only support and be prepared to read the source. Have a named internal owner who can patch config or revert without an escalation. Given the absence of any supplied project data for this assessment, treat supportability as the largest unquantified risk.
Scaling Two dimensions. First, repository size: scan cost grows with files walked, so a large monolith or a monorepo with many excluded-but-still-walked directories will feel it at boot; measure cold-start time with and without the scan before committing. Second, entity count and EM count: the multi-EM routing logic is the part most likely to have superlinear or subtly wrong behaviour at scale — exercise it with the real number of EMs, not one.
Failure modes to plan for
doctrine:schema:validate-style check in CI catches this.Ramp-up Low for a competent Laravel/PHP engineer: installation and configuration are familiar patterns. The learning is not in the API but in the boundaries — what the scanner considers an entity and how it assigns EMs. Write that down as a short internal note during the spike; it is the artefact that makes the second and third integration cheap, and it is what prevents the next engineer from silently reintroducing manual entity lists.
How can I help you explore Laravel packages today?