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

Module Symfony Laravel Package

codeception/module-symfony

Codeception module for Symfony: boots the kernel in functional tests, exposes the service container and Symfony services, and integrates Doctrine data cleanup, mailer and profiler assertions so you can write expressive end-to-end tests. Official module maintained by the Codeception team.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for the functional test harness. This is MIT-licensed glue between Codeception and the Symfony kernel. The decision it informs is whether we own custom TestCase/actor helpers or consume the community module. The assertions in the 3.10/3.11 releases — seeNumQueriesIsLessThan, seeUserIsGranted, seeMessengerQueueCount, runCommand, mockService — are each roughly a week of internal plumbing nobody wants to maintain.
  • Where to spend QA effort across the test pyramid. Recent releases push the module deep into integration territory (mailer, Messenger, Doctrine, security voters, console). That shifts the calculus toward more fast in-process functional tests and fewer slow browser E2E runs — a real cost lever on CI minutes and flake budget.
  • Roadmap gating for framework upgrades. 3.9.0 added Symfony 8 support, 3.10.0 added 8.1 to the test matrix, 3.11.0 declares 5.4 / 6.4 / 7.4 / 8.1 with PHP ^8.2. The module's compatibility window becomes an input constraint on any Symfony major upgrade plan — check it before committing dates.
  • Definition of done for feature work. Gives PM and engineering a shared, testable bar: "a feature touching email or async jobs is done when the corresponding assertions pass." Cheap way to make acceptance criteria concrete.
  • Prioritizing reliability debt. N+1 guards (dontSeeDuplicateQueries), schema validation (seeDoctrineSchemaIsValid), and queue-count assertions map directly to production incident classes, not just test hygiene. Useful ammunition when arguing for tech-debt capacity.
  • Dependency and versioning policy. The 3.10.0 change widening grabLastSentEmail() from ?Email to ?RawMessage is a live example of why dev dependencies still need a pinning policy and an upgrade audit step.

When to Consider This Package

Adopt when:

  • The stack is Symfony 5.4–8.1 on PHP 8.2+, with Codeception already in CI (v3.x requires Codeception 5).
  • You need in-process functional tests with kernel access — container, EntityManager, mailer transport, Messenger transport, voters — rather than black-box HTTP.
  • You want mail/Messenger/Doctrine/security assertions without writing and maintaining them yourself.
  • The team accepts a community-supported, dev-only dependency with a small maintainer base.

Look elsewhere when:

  • You're on Laravel. This is a Symfony-framework module, not a general PHP one; it does not apply. Use Laravel's HTTP/console test helpers or Pest.
  • Your team standardizes on PHPUnit/Pest with Symfony's own WebTestCase. The value here is the Codeception actor DSL — porting is real work, not a drop-in.
  • You need real-browser E2E coverage. Use Panther, Playwright, or Cypress; this module is not a browser driver.
  • You need a support contract, security-response commitments, or LTS guarantees. ~96 stars and one dominant maintainer don't offer that.
  • You read "Dependents: 0" as a maturity signal. It's expected for a test-only module, but it does mean nobody downstream is absorbing the integration risk for you.

How to Pitch It (Stakeholders)

To executives: No license cost, no vendor negotiation, no procurement cycle — it's MIT and installs as a dev dependency. What it buys is reduced manual QA toil on regression-prone paths: outbound email, background jobs, permission checks, database access patterns. The honest counterweight is that it's a small community project (~96 stars) with effectively one maintainer and no support contract. Mitigation is cheap: pin the version, keep tests written so the harness can be swapped, and treat it as infrastructure you rent rather than own.

To engineering: It's the official Codeception module for Symfony, and it's actively released — 3.10 and 3.11 landed in the current cycle, with 20 new methods in 3.11 alone: EntityManager reset after a failed flush, service mocking that survives kernel reboots, voter assertions with subjects, Messenger transport inspection and in-process consumption, and console ExecutionResult assertions. That replaces a pile of bespoke test base classes. Prerequisites are PHP 8.2+, Codeception 5, and awareness of the 3.10 mailer refactor — grabLastSentEmail() now returns ?RawMessage, so any test calling Email-specific methods needs a type narrowing pass.

Recommendation: Adopt as a dev-only dependency, pin to a minor version, and budget a half-day audit of existing email assertions if we're below 3.10. Re-evaluate at every Symfony major and at every maintainer change.

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.
steadrun/laravel-monitor
labyrinthe/connect-laravel
elmogy/layan
drewdan/sentinel-client
dskripchenko/laravel-llm
fatryst/nuonuo
stevenay/myanfont
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc
animalyoung/laravel-influxdb
onix-solutions/sms-telera
lonely-lights/prosetta
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin