facile-it/symfony-functional-testcase
A base functional test case for Symfony applications that simplifies bootstrapping the kernel and writing integration tests for your services, controllers, and HTTP layer.
Framing note: The package under review (facile-it/symfony-functional-test-case) is a Symfony functional-testing helper, not a Laravel package. Release 1.5.0 is a maintenance release that narrows the supported platform (PHP ≥ 8.1, Symfony ≥ 5.4) and deprecates a container-access helper. This assessment assumes it is a dev-only dependency; if it appears in our tree, it is either used by a Symfony service we own or pulled in transitively. Confirm which before scoping work.
Architecture fit
WebTestCase subclass used to boot a kernel and reach the DI container). No production runtime coupling, no routing, no persistence, no framework bootstrapping in prod.Integration feasibility
require-dev, followed by a CI matrix update. Mechanically trivial.WebTestCase::getDependencyInjectionContainer() is deprecated in favour of Symfony's native getContainer(). That is a find-and-replace across test files, low blast radius.Technical risk
Key questions
getDependencyInjectionContainer()? How many call sites?Stack fit
Migration path
require-dev constraint to ^1.5.getDependencyInjectionContainer() with getContainer() at every call site. Behaviour is equivalent in the common case, but verify tests that assert on container bootstrapping or lazily fetch private services — access semantics for private services can differ.Compatibility
symfony/framework-bundle versions; version skew here is the most common source of confusing functional-test failures.Sequencing
getContainer() swap on current versions first, so the method swap is validated independently of the version bump.Maintenance
Support
WebTestCase boilerplate.getContainer() natively. This release nudges toward that conclusion.Scalling
WebTestCase kernel boots per test are a known slow point; that is a test-design issue, not a package issue.Failure modes
getDependencyInjectionContainer() accumulate; a future removal release breaks many tests at once. Mitigated by step 3 above.composer update pulls 1.5.0 into a repo with PHP 8.0 in CI.Ramp-up
getContainer() swap is mechanical.How can I help you explore Laravel packages today?