feral/symfony
feral/symfony is a small integration package for PHP/Laravel projects that bridges Symfony components into the Laravel ecosystem, offering compatibility helpers for developers who need both frameworks side by side.
Architecture fit
Configuration tree, and optional kernel hooks in one registrable unit. The architectural decision to ship a bundle rather than documenting manual wiring is sound.HttpKernel, EventDispatcher, and DI compiler passes. The overlap question is the single highest-leverage unknown here.Integration feasibility
composer require feral/symfony, register in config/bundles.php, publish config. If the package declares type: symfony-bundle and ships (or has contributed) a Flex recipe, registration is automatic.Technical risk
Configuration conventions, changed service-defaults behavior, attribute-vs-annotation routing. An unversioned bridge becomes a blocker at the next Symfony upgrade.composer audit and a source read are mandatory, not optional.Key questions
type: symfony-bundle?composer audit? What is the license, and is it compatible with our distribution model?replace / VCS-fork contingency?Stack fit
composer.json constraints and any extra.symfony.require pin before evaluation — a missing constraint is itself a finding.App\Contract\XProvider) with a Feral-backed implementation and a no-op or native-Symfony alternative. This keeps the option to remove the dependency without touching domain code.Migration path
extends on Feral or bundle classes in application code; compose through the adapter.Compatibility
feral:).bin/console debug:container --tag=... and debug:config feral post-install to confirm what was actually registered versus what was documented.Sequencing
Configuration, composer.json, license, last commit date.composer audit, dependency tree depth, presence of abandoned transitive packages.Maintenance
vcs repository entry or a vendored fork under our namespace from day one, so the fork is a config change rather than a migration.composer.lock and forbid ^ ranges that could pull an unreviewed minor.Support
Scaling
kernel.request or kernel.response, verify it short-circuits or adds latency on high-volume paths. A single unguarded listener is the realistic performance regression vector.Failure modes
cache:warmup.Ramp-up
How can I help you explore Laravel packages today?