survos/fw-bundle
A small Symfony bundle from Survos that packages shared base functionality for Symfony applications and bundles, covering configuration defaults, service wiring, and common utilities. Little-used (no stars, low score), so treat it as early-stage or internal tooling rather than a widely adopted, well...
Architecture fit — and a stack mismatch to resolve first. The supplied description says "Symfony bundle for framework 7," and the repository source confirms it: src/SurvosFwBundle.php, templates/, translations/, assets/, public/, and an AssetMapper registration. This is a Symfony bundle, not a Laravel package. The Laravel-oriented evaluation material in this packet is boilerplate generated without reading the source and should be discounted entirely; any assessment that talks about extra.laravel.providers or php artisan vendor:publish is describing a different artifact. The package's actual shape is:
fw-base.html.twig, start.html.twig, components/) as the UI contract.@survos-mobile/mobile) registered through AssetMapper/importmap, intended to be subclassed by the consuming app's app_controller.js.survos/kit-bundle and a stated direction of tracking Symfony 8.1 (including betas) via the AbstractUxBundle pattern.So "architecture fit" is a narrow question: does a team building a Symfony app with a Framework7 mobile front end, using AssetMapper and Stimulus, and willing to accept Survos conventions get more value from this than from writing the same ~a few hundred lines of Twig/Stimulus glue themselves? Given the size of the surface, that is a genuinely open question, and the honest default answer is "probably not, unless we are already inside the Survos ecosystem."
Integration feasibility. Mechanically easy: Composer install, bundle registration, an importmap entry, and Twig namespace resolution. Feasibility, however, hinges on four checks that must be completed before any commitment:
--with-all-dependencies gymnastics or a dev- alias.survos/kit-bundle transitive pull. We inherit that bundle's health, config surface, and any global side effects it registers. That is an unassessed dependency we did not choose.SurvosFwBundle.php. Compiler passes, Twig path prepends, translation domains, and asset-map entries are all things that can silently override our own templates or asset names.Technical risk.
AGENTS.md) aimed at maintainers of this bundle, not at teams consuming it.composer update.docs/events.md exists specifically because F7 v9's page/tab lifecycle events are DOM events plus an internal pub/sub, and the notes record that earlier listener wiring was wrong. That is a documented past breakage in the exact layer we would build screens on.Key questions.
survos/kit-bundle? If yes, this is incremental and cheap. If no, we are adopting an ecosystem, not a package.symfony/* and PHP constraints in composer.json, and does the bundle install against our supported Symfony version without beta tolerances?SurvosFwBundle register global Twig paths, routes, translation domains, or asset-map entries we cannot disable?assets/package.json / importmap expect, and does it match what we would ship?Stack fit. Symfony + AssetMapper + Stimulus + Twig + Framework7. There is no Laravel integration path and none should be attempted; the bundle's PHP surface (AbstractUxBundle-style extension, compiler pass) is Symfony-specific. If the requirement is genuinely Laravel-side, this package is out of scope and the correct output is a "no" with the F7 patterns noted as prior art.
Migration path. There is no incumbent implementation named, so the inbound migration is greenfield. The reverse question is the important one: if we already have a working F7 mobile front end with our own Stimulus controllers and importmap entries, adopting this bundle means replacing our page/tab lifecycle wiring with theirs, including their event semantics. That is a regression-risk refactor, not an additive one. Keep our existing controller in place and put theirs behind a flag for one release cycle so screens can be reverted individually.
Compatibility — verify all of these, not just the first.
minimum-stability: dev leaking into our root composer.json.survos/kit-bundle version alignment and its own Symfony constraint.templates/components/.public/ CSS is intended to be served through AssetMapper versioning or copied verbatim; getting this wrong produces stale-asset incidents on mobile clients that cache aggressively.Sequencing.
bin/console debug:asset-map), and confirm the importmap entries and Twig namespace land where expected.src/SurvosFwBundle.php end to end, including the compiler pass, and catalogue every global registration: Twig paths, translations, asset entries, routes, service decorators.docs/events.md on a real mobile browser, not a desktop viewport.vendor/bin/phpstan analyse and bin/console lint:twig templates/ in our own app with the bundle installed but unused, to catch boot-time conflicts before we depend on it.Maintenance. The steady-state cost is higher than the package's size suggests, because we are tracking an ecosystem (this bundle plus kit-bundle) that is deliberately moving with pre-stable Symfony. Concretely: pin the exact tag rather than a caret range, because a "1.0.x" bump from a single maintainer tracking betas is not a signal of stability; re-validate constraints at each Symfony upgrade rather than discovering them at failure time; and record the symfony/* and survos/kit-bundle pins in our dependency register as known upgrade blockers.
Support. Assume none. There is no consumer documentation, no release notes beyond "initial version," no issue history, and 0 dependents — so there is no community to search when something breaks. The only in-repo documentation is maintainer-facing (AGENTS.md, docs/events.md). Our fallback must be decided before adoption: for this package, forking is the answer, and it should be budgeted as such. A critical-path dependency (mobile navigation is critical-path for a mobile app) on an unsupported first release is not acceptable without that fork already scoped.
Scaling. PHP-side overhead is negligible — a compiler pass, a service definition, Twig path registration. The real profile is front-end: Framework7 bundle size and importmap graph delivered to mobile clients, public/ CSS, and AssetMapper versioning/cache-busting behaviour. Check total transferred JS on a cold cache over a mobile network, and confirm that AssetMapper versioning actually invalidates when the bundle's assets change — a mobile client caching a stale controller is a support-ticket generator that looks like a server bug.
Failure modes.
survos/kit-bundle breaks this bundle without a release here. Pin both together.Ramp-up. There is no getting-started path. The realistic onboarding cost for a senior Symfony developer is 1–2 days of source reading before the first productive screen: src/SurvosFwBundle.php, then assets/package.json, then assets/src/controllers/mobile_controller.js, then the demo's app_controller.js (the de facto tutorial, since it subclasses the bundle controller), then docs/events.md. A developer without prior AssetMapper/importmap and Framework7 exposure should double that. Budget the reading time explicitly; treating this as a "just Composer require it" dependency is how the first sprint gets lost.
How can I help you explore Laravel packages today?