vbardales/multiple-app-kernel-bundle
A Symfony bundle for running multiple application kernels within a single project. Define separate apps, each with its own configuration, routing, and services, while sharing one codebase. Ideal for multi-app architectures that need clean separation without duplicating setup.
Architecture fit — poor, and mis-scoped for this stack. vbardales/multiple-app-kernel-bundle is a Symfony2 bundle, not a Laravel package. It is designed to extend Symfony's Kernel/Bundle system so a single Symfony2 base installation can boot and host multiple distinct applications (a shared front controller dispatching to per-app kernels and container configurations). Laravel has no bundle abstraction, no registerBundles() kernel extension point, and no equivalent notion of multiple kernels per installation. The closest Laravel primitives are a single App\Http\Kernel, route-level domain grouping, and package auto-discovery via service providers. Consequently there is no architectural seam into which this package can be dropped; adopting it is not an integration exercise but a re-implementation exercise.
Integration feasibility — effectively zero as a dependency. The codebase targets PHP 5.x-era Symfony (2.x reached end of life in November 2018) and almost certainly relies on APIs and conventions that no longer exist: PSR-0 autoloading, Resources/config YAML service definitions, getContainerExtension(), and Symfony 2 Bundle subclassing. Composer 2 constraints, PHP 8.1+ type strictness, and Laravel 10/11's typed container and bootstrapping pipeline make a direct install unlikely to even resolve, let alone boot. The only realistic path is to treat the repository as a reference pattern for how to multiplex applications behind one entry point, not as a library.
Technical risk — high and asymmetric. Signals of abandonment are unambiguous: zero stars, zero dependents, no release cadence, and no downstream consumers to surface regressions. That means no CVE disclosure path, no compatibility patches, and no community triage. A dependency with no dependents is a dependency whose failure modes are discovered exclusively by you, in production. Beyond maintenance, the pattern itself carries risk: a shared kernel hosting multiple apps creates a shared container, shared bootstrap, and shared failure domain — a bug or memory exhaustion in the kernel layer takes down every hosted application simultaneously.
Key questions to resolve before any commitment:
Stack fit — none directly; the concept can be borrowed. For a Laravel host, the equivalent capability is achieved with supported, maintained mechanisms, in rough order of preference:
stancl/tenancy or spatie/laravel-multitenancy if true data isolation, per-tenant migrations, and cache partitioning are required. Both are actively maintained and have real dependent counts.Migration path. Do not attempt a Composer install. If a legacy Symfony2 application exists that motivated this evaluation, isolate it: keep it running behind the same edge router as the Laravel target, communicate over HTTP or a message bus, and migrate capability-by-capability. If the goal is to replicate the bundle's multiplexing behavior inside Laravel, schedule a short spike to prototype domain-scoped route resolution and per-tenant container configuration; that spike is the actual deliverable, and this repository is at most a design reference.
Compatibility. Assume incompatibility with PHP 8.x, Composer 2, and any current Laravel release until proven otherwise. Any code lifted from the repository must be re-expressed against Laravel's service container, bootstrap/app.php configuration, and the current package-discovery conventions. Budget for a full rewrite of anything reused.
Sequencing.
Maintenance — you would own it outright. There is no upstream to patch, no release notes to track, and no maintainer to escalate to. Any adoption implies a permanent fork with an internal owner, an assigned security-review cadence, and a documented divergence from upstream. For a zero-dependent, zero-star package, that carrying cost is difficult to justify against building the equivalent twenty-line route-domain configuration in Laravel.
Support — none. No vendor, no community, no issue-tracker throughput to rely on. Internal engineers become the sole escalation path, and their Symfony2 knowledge will decay as the team standardizes on Laravel. On-call runbooks must be authored from scratch.
Scaling — coupled. A shared-kernel multi-app model scales the host rather than the app. You cannot independently size, cache-warm, or horizontally scale one hosted application without affecting the others, and a noisy-neighbor app degrades the whole deployment. Independent deploy cadence is also lost: every app ships together, so a hotfix for one is a change window for all. If any hosted app has a materially different traffic profile, this model will become the constraint before infrastructure cost does.
Failure modes — correlated and broad. The critical risk is blast radius. Kernel bootstrap failure, container compilation errors, config-cache collisions, autoloader namespace conflicts between apps, and shared memory-limit exhaustion all take down every hosted application at once. Debugging is harder because stack traces cross application boundaries and configuration is resolved in a shared layer. Silent failure modes are worse: one app's service definition overriding another's in the shared container produces behavior that is intermittent and difficult to reproduce locally.
Ramp-up — steep and non-transferable. Engineers must learn Symfony2 idioms (bundles, extensions, kernel bootstrapping) that have no analogue in the team's Laravel practice. That knowledge is single-purpose and does not compound into the platform's forward roadmap. Expect multi-week onboarding for anyone expected to modify the kernel layer, plus ongoing cost from context-switching between two frameworks.
Recommendation. Reject as a dependency. Record the evaluation, close the ticket, and redirect the underlying requirement to Laravel-native domain routing or an established tenancy package. The only scenario warranting further time is the discovery of a live Symfony2 application in the estate — and in that case the work is a containment and migration plan for that application, for which this bundle is neither necessary nor sufficient.
How can I help you explore Laravel packages today?