Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Alice Bundle Extension Laravel Package

theofidry/alice-bundle-extension

A Symfony bundle extension for AliceBundle that adds extra fixture-loading capabilities, making it easier to configure and load Alice fixtures in Symfony applications.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This is test-tooling glue, not a platform component. It translates Behat tags into hautelook/alice-bundle fixture-loading calls and adds no capability that isn't already present in hautelook/alice-bundle, nelmio/alice, or Behat's own hook system. Architecturally it belongs in the dev-dependency layer only; it has no production runtime footprint. That limits blast radius but also caps strategic value — there is no path where this package becomes load-bearing infrastructure.

Integration feasibility. Low against any current stack. Its constraints are frozen at mid-2016: PHP 5.5–7.0-era, Symfony 2/3, Behat 3.0–3.1, HautelookAliceBundle 1.x, Alice 2.x. On a PHP 8.1+/Symfony 6/7/Alice 3.x application, composer require will fail on constraint resolution before a single line executes. Archived status, no release since 2016-06-07, and zero listed dependents all point the same direction.

Technical risk. High, and concentrated in three places rather than spread evenly:

  • Dependency resolution — near-certain conflict with any modern Symfony/Behat/Alice pin. This is the dominant failure mode and it fails loudly and early, which is at least cheap to discover.
  • Security and maintenance — no CVE response path, no triage, no release mechanism. Anything we adopt here we own outright.
  • Knowledge — documentation is a 2016 README. Behavior must be inferred from source.

Key questions for the team.

  • Is there an existing repository already depending on this, or is this a greenfield consideration?
  • What Behat / Symfony / Alice versions are in the target stack today, and what is the upgrade horizon?
  • How many feature files rely on the tag-driven fixture/reset semantics, and are those scenarios load-bearing for coverage?
  • Do we need the schema-reset semantics specifically, or only per-scenario fixture loading? The answer materially changes replacement effort.

Framing. Treat this as a replace decision, not an integrate decision. The 5.6 opportunity score is best read as "there is a small, bounded job to do here," not "there is a package worth adopting."

Integration Approach

Stack fit. Fits only a legacy Symfony 2/3 + Behat 3.0 application. For anything else, the package is a non-starter and the conversation shifts immediately to substitution.

Migration path — two viable options.

  1. Project-local replacement (recommended). Remove the extension from behat.yml and add a small Behat context (~50–100 LOC) with @BeforeSuite / @BeforeScenario hooks that boot the kernel and invoke HautelookAliceBundle's public fixture-loader service. Critically, preserve the existing tag vocabulary so feature files and step definitions do not change. Estimated 1–2 developer-days including CI verification. This is the approach most teams converged on after the package was archived, which is a useful prior: the functionality is small enough that owning it is cheaper than tracking a dependency.

  2. Forward to maintained equivalents. hautelook/alice-bundle 2.x provides database refresh/reload traits (PHPUnit-oriented), and doctrine/data-fixtures plus Alice works fine under a Behat hook. Pair this with a maintained Symfony bootstrap extension for Behat rather than hand-rolling kernel boot. Preferable if the suite is large or if other test-infrastructure gaps exist alongside this one.

Compatibility gate. Before any code is written, run composer why-not theofidry/alice-bundle-extension against the target application. That single command determines whether this is a one-day substitution or a forced test-harness modernization.

Sequencing.

  1. Inventory tag usage across the feature suite; record which scenarios depend on reset semantics versus plain fixture loading.
  2. Spike the local context in a branch against current Behat/Symfony.
  3. Run the full suite and diff failures — expect data-leakage failures, not syntax errors.
  4. Delete the package and any pinned transitive constraints in the same PR, so the tree never exists in a half-migrated state.
  5. Add a dependency guard so it cannot be reintroduced by a stale branch merge.

Operational Impact

Maintenance. Zero upstream. Archived, last release 2016, no dependents. The moment it enters the tree we own it — and unlike a normal vendored dependency, we cannot upstream a fix. Estimate the local replacement as a recurring ~2–4 hours/year artifact. That is a rounding error, which is precisely why replacement is the right call over carrying the risk.

Support. No maintainer, no issue triage, no security channel. Internal ownership must be assigned by name, or it defaults to nobody and surfaces as an unexplained CI break eighteen months from now.

Scaling. Dev and CI only, so production runtime exposure is nil — a genuine positive. The relevant scaling axis is CI wall-clock: per-scenario fixture loading is the classic Behat slowdown, and it compounds linearly with suite growth. Recommend schema truncation once per suite plus transaction-wrapped scenarios; this is worth fixing during the migration rather than after, since we are already in the hook code.

Failure modes, ranked by likelihood.

  • Composer resolution failure on the next framework upgrade — most likely, and near-certain on a modern stack.
  • Data leakage between scenarios if reset semantics are not reproduced faithfully in the replacement — this is the dangerous one, because it produces intermittent, hard-to-diagnose flakes rather than a clean error.
  • Silent semantic divergence from newer Alice releases (fixture reference resolution changed across major versions) if a fork or pin is used.
  • PHP 8 deprecation or fatal on install.
  • Bus factor: replacement behavior inferred from source with no written spec.

Ramp-up. Low. The package surface is tiny; a new engineer needs roughly half a day to internalize tag semantics and the fixture lifecycle. The same smallness that makes it low-value to adopt is what makes it cheap to replace.

Recommendation. Do not adopt. Replace with a project-owned Behat context (preferred) or a maintained equivalent, budgeted at 1–2 developer-days, gated on the composer why-not check. Assign a named owner for the replacement code and add a guard against reintroduction.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource