elcodi/test-common-bundle
Test Common Bundle is part of the Elcodi e-commerce suite of Symfony components and bundles under the MIT license. Read-only package; use the main elcodi/elcodi repository for issues, questions, and pull requests.
Architecture fit. elcodi/test-common-bundle is a Symfony bundle from the Elcodi e-commerce suite, not a Laravel package. It is a read-only subtree split of the monorepo's testing utilities — the kind of code that provides shared base test cases, fixtures, and helper assertions for the Elcodi component/bundle test suites. It has no Laravel service provider, no illuminate/* dependencies, no facades, and no config publishing. Dropping it into a Laravel application would introduce a Symfony Bundle class that Laravel's container and kernel do not know how to register, with essentially zero functional payoff. For a Laravel team, the architectural fit is poor by default; the only defensible use is as a source of low-level testing patterns to copy, not as a runtime dependency.
Integration feasibility. Composer-installable in principle, but the practical path is blocked at several points: the package is a 2014-era subtree split with no active maintainers, its Symfony and PHP version constraints will almost certainly conflict with a modern Laravel stack (Laravel 10/11 requires PHP 8.1+ and Symfony 6/7 components), and the read-only banner explicitly states pull requests will not be reviewed. There is no supported upgrade path and no security response process. Integration feasibility should be assessed as "reference-only," not "dependency."
Technical risk. High relative to value. Risks include: (1) abandoned code with no CVE response — anything pulled in transitively inherits that exposure; (2) version-constraint deadlock if the bundle pins old Symfony/PHPUnit versions, forcing resolution hacks or --ignore-platform-reqs; (3) subtree-split provenance means the canonical source of truth is elcodi/elcodi, so the split repo can lag or diverge; (4) zero stars and zero dependents means effectively no field validation of edge cases. The 0.3 score and 2014 last release are consistent with an unmaintained artifact.
Key questions. What specific testing capability are we trying to obtain — base test case classes, fixture helpers, or assertions? Is that capability already covered by Laravel's own testing tools (Illuminate\Foundation\Testing, Pest, or orchestra/testbench)? Does the bundle's transitive dependency graph conflict with our locked Symfony/PHPUnit versions? If we only want the patterns, can we copy the relevant test utilities under our own MIT-compatible attribution rather than depend on the package? Who owns the decision if a transitive dependency triggers a security advisory?
Stack fit. Laravel-first. The correct integration is not composer require elcodi/test-common-bundle. Instead, treat the repository as a reference implementation: read the helper classes, extract the reusable test patterns (base test case setup, fixture builders, assertion helpers), and reimplement them natively against Laravel's testing APIs — TestCase, RefreshDatabase, model factories, and testbench for package-level testing. This keeps the dependency graph clean and avoids dragging Symfony 2-era code into a modern app.
Migration path. Three viable paths, in order of preference: (1) Copy-and-adapt — vendor the useful test helpers into tests/Support/ with an MIT attribution note in the file header; no runtime or dev dependency added. (2) Fork-and-modernize — if there is genuine reusable value, fork under our org, update PHP/Symfony/PHPUnit constraints, and publish as an internal package; this is only justified if the extracted logic is substantial. (3) Direct dependency — only acceptable in a legacy Symfony 2 project already on the Elcodi stack; in that narrow case, pin to a stable tag and isolate it to require-dev.
Compatibility. Verify the package's composer.json for php, symfony/*, and phpunit/phpunit constraints before any consideration. Expect PHP 5.x-era constraints and Symfony 2.x components; these will conflict with PHP 8.x and Symfony 6/7 in any current Laravel app. Check PSR-0 vs. PSR-4 autoloading, and confirm no deprecated APIs (e.g., setExpectedException, old PHPUnit assertion signatures) survive into our PHPUnit 10/11 test suite.
Sequencing. (1) Inventory the repo's test helpers and map each to an existing Laravel or internal equivalent; (2) decide copy vs. fork vs. drop; (3) if copying, reimplement and add attribution; (4) add a lint/CI check to prevent accidental reintroduction of the dependency; (5) document the decision in an ADR so future maintainers do not rediscover the package and re-litigate it.
Maintenance. As a direct dependency: zero upstream maintenance and no PR acceptance, meaning all fixes are ours to carry. As copied code: maintenance cost is a one-time adaptation plus normal ownership of the copied helpers, which is low and bounded. The read-only, subtree-split nature means upstream will never accept improvements; any fork becomes a permanent internal responsibility.
Support. No vendor support. Community channels (Gitter, Stack Overflow, Twitter) referenced in the README are for the broader Elcodi project, not this split, and are unlikely to be responsive for a 2014 bundle. Internal support burden falls entirely on our team.
Scaling. Not a scaling concern in the usual sense — this is test-only code. The relevant "scaling" is organizational: if multiple Laravel services copy the same helpers, we get drift. Mitigate by centralizing adapted helpers in an internal dev-tools package or a shared test-support repository rather than duplicating across services.
Failure modes. (1) Dependency resolution failure on install due to conflicting PHP/Symfony constraints. (2) Silent test breakage after a PHPUnit major upgrade if deprecated assertions were copied verbatim. (3) Security advisory in a transitive legacy dependency with no upstream fix. (4) Confusion for new engineers who see a Symfony bundle in a Laravel composer.json. (5) Divergence from the canonical elcodi/elcodi source if the split lags. Each is easily mitigated by the copy-and-adapt approach.
Ramp-up. Minimal. The bundle is small and testing-focused; an engineer familiar with PHPUnit can extract the useful patterns in under a day. The larger ramp-up cost is the decision and documentation overhead — ensuring the team understands why this package is reference-only so it is not reintroduced later. Budget roughly one engineer-day for evaluation and adaptation, plus an ADR for governance.
Recommendation. Do not add elcodi/test-common-bundle as a dependency in any Laravel project. Treat it strictly as an MIT-licensed reference for test helper patterns, adapt what is useful into native Laravel/PHPUnit utilities with attribution, and record the decision. The 0-star, 2014-era, read-only profile makes any other path a net-negative trade of maintenance risk for negligible capability.
How can I help you explore Laravel packages today?