proophsoftware/prooph-interop-bundle
Symfony bundle that integrates prooph event sourcing components via PSR-11/container-interop, simplifying configuration of command buses, event buses, event stores, and projections in Symfony applications.
Feature feasibility and scoping. This package gives you a node-based representation of hierarchical data (with a DynamicArrayNode type that can be composed and merged with other nodes). That directly supports decisions like:
array_merge calls scattered through the codebase.Roadmap sequencing inputs. The v0.1.2 patch fixing DynamicArrayNode merging (#4) tells you merge correctness was recently broken in a core type. Practical implications for planning:
Use cases worth validating before committing: multi-tenant settings resolution, layered application config, structured content/block composition, nested form or survey definitions, permission/policy trees, and any feature where users edit part of a tree and expect the rest to survive.
Decisions this should not drive yet: pricing or SLA commitments, public API contracts exposed to customers, or anything requiring schema stability across a 12-month horizon. At v0.1.x there is no stability guarantee.
Adopt when:
DynamicArrayNode implies.Look elsewhere when:
array_replace_recursive or Laravel's native config() layering may already suffice, and a node abstraction is overhead.Due-diligence checklist before adoption: read the tests covering DynamicArrayNode::merge, pin your exact version in composer.json (avoid ^0.1), and add your own integration tests around the merge cases your product depends on.
To executives: This is a small, early-stage Laravel library that handles a specific, genuinely fiddly problem — combining nested configuration and content trees correctly. It's cheap to trial and could save real engineering time on settings, overrides, and nested content features. The caveat is maturity: it's at v0.1.2 and just shipped a fix to its core merge behaviour, so I'd recommend a time-boxed spike inside one feature, not a platform-wide commitment. No licence cost decision needed yet; the decision is purely "do we spend two engineering days validating it."
To engineering: The package models hierarchical data as nodes and provides a DynamicArrayNode that merges with other nodes. v0.1.2 fixes a merging bug (#4) — a small, healthy signal (active maintenance, issues being closed) but also a warning that merge semantics are the live edge of the codebase and were recently wrong. Proposal: (1) spike it behind a thin internal interface so we can swap it out; (2) write contract tests for the merge cases we care about — deep merge, key collisions, ordering, null/empty nodes; (3) pin the version; (4) if the spike holds, standardise on it for layered config and nested settings, and revisit at 1.0. If merge conflict policy isn't documented, that's the first thing to raise upstream.
Bottom line: Worth a scoped evaluation. Not worth a dependency you can't remove.
How can I help you explore Laravel packages today?