Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Flob Foundation Bundle Laravel Package

florianbelhomme/flob-foundation-bundle

A Symfony bundle that integrates Zurb Foundation into your application, offering form themes, Twig helpers, and asset/layout support for building responsive interfaces with Foundation’s grid and UI components.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — unchanged. Despite the "Laravel/PHP package" framing, this remains a Symfony2 bundle, not a Laravel package. Everything of value is bound to Symfony's extension model: Twig extensions registered through the bundle's DI container, service definitions in bundle config, and console commands extending Symfony's Command base class. Laravel's equivalents (service providers, Blade components, Artisan commands, the Illuminate container) share no extension mechanism with Symfony bundles. There is no adapter layer and no realistic path to "installing" this into a Laravel app. Release 3.0.2 does not touch this: its change is a Twig menu-label translation — i.e. exactly the Twig-coupled layer that doesn't port.

The portable surface is small. Stripping the Symfony coupling, what remains is: (a) Foundation's static CSS/JS assets, which are freely available via npm/Vite and need no package at all, and (b) a set of Twig templates/helpers that wrap Foundation markup patterns (panels, alerts, grids, form macros). The second item is the only thing with any defensible value — and it is worth days of effort to replicate, not a dependency to adopt.

What release 3.0.2 actually changes — and does not. The release notes are a single line: "Fix menu label translation." That is a one-line patch to a translation string in the Twig layer. It is not a new feature, not a breaking change, not a deprecation. It does not touch Composer constraints, PHP/Symfony version ranges, the bundle's extension model, or the frontend asset surface. The version bump (3.0.2) is a patch, consistent with the prior assessment's "last release 2016-10-27" having been the 3.0.1 tag; the project has emitted one patch in roughly nine years. One translation patch is not a maintenance signal and does not alter the structural conclusion — the project is minimally alive enough to tag a string fix, but not alive enough to modernize.

Integration feasibility — unchanged: effectively zero for Laravel; marginal for Symfony. For Laravel: not feasible without a rewrite. For Symfony: only relevant to Symfony 2.x (and possibly early 3.x). Symfony 2.8 LTS reached end of life in November 2018, so even the "correct" target framework is unsupported.

Technical risk — high and compounding, with one factual correction.

  • Archived / abandoned status: the prior assessment cited "archived, last release 2016-10-27." The release date is now stale (3.0.2 supersedes it) and the archive/abandoned flags should be re-verified in registry metadata. A re-tag does not lift the abandoned flag by itself — treat archival as an open question to confirm, not as settled either way.
  • Release cadence: one translation-only patch after ~9 years. That is a break-glass signal, not a maintenance rhythm. Expect no further patches, no PHP 8 support, no Symfony version bump.
  • Abandoned package flag will surface in Composer audit tooling; expect policy friction in any org with supply-chain review.
  • Dependency constraints are pinned to Symfony 2.x-era versions and PHP 5.x/7.0-era runtimes. Composer resolution against PHP 8.x and any modern framework will almost certainly fail outright. 3.0.2 does not touch these.
  • Zero dependents, 47 stars. No downstream pressure to fix anything, no incidental testing, no community triage.
  • Foundation version drift. Zurb's Foundation has moved through several major generations since this bundle's era; the templates likely encode Foundation 4/5 markup conventions that no longer match current docs or current JS initialization patterns.
  • Security posture: no upstream patch path, ever. Anything adopted is yours to fork and own. A translation fix does not create a security-patch channel.

Key questions to resolve before spending further effort.

  1. What is the actual problem statement — "we want Foundation in a Laravel app" or "we have a legacy Symfony 2 app to maintain"? These have completely different answers, and only the second could conceivably involve this bundle.
  2. Did the 3.0.2 release coincide with a maintainer handoff, un-archival, dependency bump, or CI run? The release notes suggest no. If there is no accompanying signal, treat it as an isolated patch and leave the risk rating unchanged.
  3. Do we specifically need the Twig extension behavior (form macros, panel/alert helpers), or do we just need Foundation's CSS/JS available to the build? If the latter, this package is irrelevant.
  4. Is Foundation even the chosen design system, or is this being evaluated as a generic "UI scaffolding" pick? Foundation's momentum has lagged Bootstrap and Tailwind considerably; locking into a decade-old wrapper compounds that bet.
  5. If we replicate the helpers, is the component inventory small enough to port to Blade components in one sprint? Almost certainly yes.

Integration Approach

Stack fit — unchanged: none for the stated target. A Symfony2 bundle cannot be composed into a Laravel application. twigbridge-style packages let Laravel render Twig, but they do not make Symfony bundles resolvable, autoconfigured, or container-aware. Treat "Laravel integration" as out of scope and reframe the decision. The 3.0.2 translation fix lives entirely inside the Twig extension layer and is not reachable from Laravel without the rewrite already ruled out.

Recommended migration path — reference material, not a dependency.

  1. Do not add to composer.json. There is no scenario where a direct dependency pays off, and a translation-only patch does not create one.
  2. Mine it for patterns. Clone the repo, inventory the Twig extensions and templates, and extract the set of Foundation component patterns worth keeping. This is a short, bounded exercise — likely a dozen or so helpers.
  3. Rebuild natively. Install Foundation (or the chosen design system) via npm and wire it through Vite, then implement the surviving patterns as Blade components. This gives you something maintainable, testable, and PHP 8-compatible.
  4. For the Symfony case only: if a legacy Symfony 2 app genuinely needs this, isolate it, pin it, and budget for a framework upgrade path — but note that modern Symfony does not need a bundle for Foundation at all; asset pipeline + Twig templates suffice.

Compatibility — unchanged. Expected blockers: PHP constraint conflicts, Symfony version conflicts, and archived-package policy gates. 3.0.2 did not adjust Composer constraints, so none of these are lifted. Verify by attempting a dry-run resolution in a throwaway branch — the failure will be fast and unambiguous, which is useful evidence for the decision record.

Sequencing — unchanged.

  • Week 0: Confirm problem statement and design-system choice. Kill or confirm the bundle in one decision.
  • Week 1: If proceeding, inventory extensions/templates and estimate the Blade port.
  • Week 1–2: Build the native asset pipeline and component set; validate against real screens.
  • Week 2: Retire the reference repo; document the decision — including the 3.0.2 datapoint — so this evaluation isn't repeated.

Total realistic effort for the native path: days, not weeks. That asymmetry — a few days of rebuild versus an open-ended liability — remains the core of the recommendation.

Operational Impact

Maintenance — unchanged in substance; one factual correction to the record. The prior assessment's "roughly a decade without maintenance" should be softened to "one translation-only patch in ~9 years" — the operational reality is identical, the phrasing should now be precise. Adopting it still converts an external dependency into a fork you own and must re-audit on every PHP and framework upgrade. With zero dependents, there is no herd immunity and no one else discovering breakage first.

Support — unchanged. No vendor, no active maintainers, no community of scale. 47 stars and 0 dependents is a reliable signal that troubleshooting will be entirely internal. A single drive-by translation patch is not a support channel.

Scaling — unchanged. Presentation-layer package; it does not touch request handling, queues, or data paths. The frontend cost is real: shipping an era-appropriate Foundation build adds CSS/JS weight, drags along outdated browser-support assumptions, and diverges from whatever the design team is actually specifying today.

Failure modes to expect — unchanged, plus one new review-mode failure.

  • Hard failure at install — Composer conflict or archived-package policy block. Most likely outcome; cheap to discover.
  • Silent breakage on runtime upgrade — if it does install, behavior degrades on PHP 8 or Twig API changes without an obvious error, which is worse than a clean failure.
  • Markup/JS drift — templates emit Foundation markup that current Foundation JS no longer initializes, producing components that render but don't behave.
  • Audit findings — abandoned-package flags in composer audit and SCA tooling will require a documented exception, which is a recurring cost, not a one-time one.
  • Fork rot — if you fork to patch, the fork silently diverges and eventually becomes its own unmaintained artifact.
  • Signal misread (new) — do not mistake the 3.0.2 tag for a maintenance signal in future review passes. A one-line translation patch is not evidence of revival; if this assessment is re-opened on a version bump alone, that is an intake-criteria problem, not new evidence.

Ramp-up — unchanged. Near zero, because the recommended action is not to adopt it. If someone does attempt a port, the learning curve is shallow — Foundation markup conventions and Blade component syntax are both well-trodden — so the risk is not skill scarcity but wasted effort on a dead dependency.

TPM recommendation — unchanged: do not adopt. Release 3.0.2 is a translation-string patch. It is not a breaking change, a new feature, or a deprecation, and it does not alter the architecture fit (Symfony2 bundle, not Laravel), the compatibility picture, the risk posture, or the recommendation. What it does change is the decision record: correct "archived, last release 2016-10-27" to "last release 3.0.2, translation-only; archive status to be re-verified," and keep the kill decision. The only legitimate use of this package remains as a reference implementation for Foundation component patterns during a short, bounded rebuild. The underlying idea (first-class Foundation integration) had merit in 2016; the artifact is still a decade-dead Symfony2 bundle with no dependents, and one string fix does not reverse that. For a Laravel roadmap, the correct line item is "adopt a design system and build native Blade components" — not "integrate this bundle." Continue to escalate the framework mismatch to whoever scoped the evaluation, since it suggests the intake criteria are matching on "PHP" rather than on "Laravel-compatible."

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox