friendsofsymfony/propel1-user-bundle
Propel1UserBundle integrates FOSUserBundle with the Propel 1 ORM, providing a Propel-backed user model and provider for Symfony apps. It lets Propel projects use FOSUserBundle’s registration, authentication, and user management features without Doctrine.
Verdict: this is not a Laravel package, and a TPM should not treat the catalog's "Laravel/PHP" framing as an integration claim. friendsofsymfony/propel1-user-bundle is a Symfony bundle that supplies a Propel 1.x persistence backend for FOSUserBundle (user model, security user provider, manager/factory wiring). It is archived, has zero stars, zero dependents, and no maintainer. Its only defensible value to a TPM is as a signal in dependency inventory and a reference pattern for auth layering — not as an adopted dependency. The leveragable decision is "freeze-and-migrate vs. carry indefinitely," not "integrate."
Architecture fit — essentially zero against Laravel.
Bundle class plus a DI container extension; Laravel's service providers are not equivalent, and Laravel's HTTP kernel never executes Symfony bundle bootstrapping. There is no seam to hook into.Illuminate\Contracts\Auth\Authenticatable and Illuminate\Contracts\Auth\UserProvider. This package implements Symfony's UserProviderInterface and FOSUserBundle's UserManagerInterface. No shared interface, no adapter layer, no partial reuse.propel-gen; Laravel expects Eloquent models backed by migration-driven schema. Nothing transfers without a hand-written schema port plus an ETL.Integration feasibility. Not feasible as a dependency in any Laravel application, and only historically feasible in Symfony 2.3–2.8-era apps. A "port" is a rewrite in which no code survives: PHP 5-era syntax, Symfony DI wiring, and Propel Base* generated classes are all discarded. Estimate accordingly — the bundle is a rounding error in that budget; data migration and credential handling are the cost.
Technical risk (ranked).
Key questions for the requesting team.
composer.lock, and is there a hard cutover date?Stack fit.
| Target stack | Fit | TPM action |
|---|---|---|
| Laravel 9/10/11 | None — contract and DI model both incompatible | Reject; route to Fortify/Breeze/Jetstream |
| Symfony 4+ | Incompatible — bundle and Security API changes | Not a target |
| Symfony 2.3–2.8 + Propel 1.x | Historical only, on unsupported versions | Freeze, migrate |
| Greenfield (any framework) | Never | Framework-native auth |
Migration path — only if an existing deployment already depends on it.
Base* model classes actually referenced in application code. The blast radius is almost always wider than the bundle itself — it's the whole Propel model surface plus every FOSUserBundle extension point.UserProvider, or Symfony's current authenticator system) and ETL the data one time into migrations or Doctrine entities.Compatibility gates to validate before any estimate is credible: PHP 8.x runtime (hard gate), Symfony 4+ (excluded), FOSUserBundle successor path (none — deprecated upstream), Propel 1.x (do not introduce anywhere new).
Sequencing.
Maintenance. Zero upstream maintenance; the repository is archived. Any fork transfers the security-advisory burden to your organization and converts a dependency into an owned product with an unbounded support tail. The Propel 1 toolchain also adds a second, parallel build step (propel-gen against XML schema) that must be sustained in CI — a recurring tax for a capability a native implementation provides for free.
Support. No maintainer, no issue triage, no CVE feed, no peer community at 0 stars / 0 dependents — there is nobody to escalate to and no vendor to buy support from. Internal support is a single named engineer or nothing.
Scaling. Authentication sits on every request, so latency and correctness are disproportionately visible. Propel 1's per-request connection handling works under PHP-FPM but offers no modern pooling or observability hooks; instrumentation is manual and will be built once and never maintained. Note that session/token storage is out of scope for this bundle — confirm independently that it scales before attributing any bottleneck here.
Failure modes.
Ramp-up. Cost is high and the hiring pool is near-zero; the knowledge does not transfer to anything else on the roadmap. Factor onboarding time into any "just maintain it" estimate — it is a permanent tax, not a one-off.
Portfolio recommendation. Do not add this to the dependency inventory. If it is already deployed, record it as a migration liability with a named security owner, a dated exit criterion, and an explicit exception in the security review — not a suppressed alert with no expiry. If it is not deployed, mark it not-evaluated / no-fit and redirect the request to framework-native authentication. The TPM action is consistently the same: fund a scoped migration, or freeze with an owner and a date, and refuse the third path of quietly carrying unpatchable auth code.
How can I help you explore Laravel packages today?