evheniy/materialize-bundle
MaterializeBundle integrates the Materialize CSS framework into Symfony2 via cdnjs CDN, with optional local JS, CSS, and font sourcing configured through config.yml. Includes Assetic support and Twig template includes for styles and scripts.
Architecture fit. The premise needs correcting before anything else: this is a Symfony2 bundle, not a Laravel package. It has no service provider, no facade, no config/ publish tags, and no Laravel-style asset pipeline hooks. What it actually does is register the Materialize CSS/JS assets from the cdnjs CDN into Symfony's templating/asset helpers so templates can reference them without hardcoding URLs. That is the entire scope — a thin CDN convenience wrapper, not an integration layer. For a Laravel codebase the architectural fit is essentially zero; you would be adopting a foreign framework's bundle conventions for a job that a single Blade @push directive or a npm install materialize-css already solves.
Integration feasibility. Low, and not for the reason the score implies. The package is functionally trivial to replicate: two <link>/<script> tags or one npm dependency. There is no business logic, no data model, no API surface worth preserving. Any Laravel team evaluating this should treat it as a reference for what it does rather than a candidate dependency — reimplementing it in Laravel takes minutes and removes a dead third-party from the supply chain.
Technical risk. High and asymmetric. Last release was 2016-06-06, meaning it predates Symfony 3/4/5/6/7 entirely, predates modern PSR-4/PSR-11 conventions, and almost certainly has no compatibility with PHP 8.x. The bundle targets Materialize as served from cdnjs at a pinned-era version, so the CSS/JS delivered will be a 2016-vintage Materialize release — a framework that itself has seen little maintenance. With 6 stars and 0 dependents there is no community to notice breakage, no one filing issues, and no one merging fixes. You would be the only operator.
Key questions. (1) Is the actual requirement "use Materialize" or "avoid hardcoding CDN URLs in templates"? If the latter, a Laravel helper or config entry is the correct answer. (2) Does the target Laravel version even load Symfony bundles? It does not — this package would require a Symfony kernel. (3) Is Materialize itself still an acceptable design system in 2024+, or is this a legacy UI audit in disguise? (4) What is the real risk tolerance for a 2016 PHP asset package in a production dependency tree?
Stack fit. Mismatched at the framework boundary. Laravel's asset story is Vite/Mix plus @vite/@push in Blade; Symfony's is Webpack Encore plus the Asset component and bundle-registered paths. This package occupies the second world only. There is no path where it becomes idiomatic Laravel without a wrapper you write yourself — at which point the wrapper is the deliverable and the bundle is unnecessary.
Migration path. Do not migrate to this package. If the goal is Materialize in a Laravel app, the sequence is: npm install materialize-css, import in resources/js/app.js and resources/css/app.css, add the Materialize JS initializers (M.AutoInit() or per-component), and reference via @vite. That is the migration — and it is a one-afternoon task, not a phased program. If some legacy Symfony2 surface genuinely depends on this bundle, freeze it in place and schedule removal rather than upgrading it.
Compatibility. Effectively none for current stacks. No Laravel support at any version, no PHP 8.x assurance, no Symfony 4+ support, no security patch stream. Composer will happily install it into a Laravel project and it will simply never be autoloaded into anything useful — a silent no-op dependency that adds audit surface with zero benefit.
Sequencing. Treat this as a reject, not a defer. Order of operations if it appears in a dependency review: (1) confirm the requirement is "Materialize assets available to templates"; (2) confirm framework target is Laravel; (3) conclude the package is out of scope and substitute npm + Vite; (4) if a Symfony2 app is in the estate, note the bundle as legacy-frozen and fold its removal into that app's eventual decommission or Symfony upgrade.
Maintenance. Zero upstream maintenance for roughly nine years, and no maintainer incentive to change that. You inherit 100% of the maintenance burden for a component that provides two tag references. There is no versioning signal to trust, no changelog cadence, and no release discipline to plan around.
Support. No vendor, no SLA, no active issue triage, no security response process. A CVE in the underlying Materialize or in the CDN delivery path would surface through your own scanning, not through the package. Support cost is low only because the surface is tiny — but that also means the correct response to any future problem is "delete it," which makes support an exercise in rework rather than repair.
Scaling. Not a scaling concern; it is a static asset reference. CDN delivery scales fine. The scaling risk is organizational: every dead dependency in the tree increases audit, upgrade, and incident-triage cost across every future framework bump, and that cost compounds across the dependency graph even when the individual package is trivial.
Failure modes. (a) Silent no-op — installed into Laravel, never wired, team assumes Materialize is available and discovers otherwise in QA. (b) CDN unavailability or version drift — assets pulled from cdnjs at a 2016-era pin; upstream changes or outages break rendering with no local fallback. (c) Framework-version deadlock — the bundle blocks or confuses Composer resolution during a Symfony/PHP upgrade and consumes engineering time to unpick. (d) Stale CSS/JS surface — a decade-old Materialize build shipped to users, with whatever accessibility and browser-compat gaps that implies. (e) Supply-chain blind spot — an unmaintained package that scanners flag repeatedly, generating noise that trains the team to ignore alerts.
Ramp-up. Near-zero learning curve and near-zero value. Any engineer can reproduce the functionality in under an hour with npm install materialize-css and Vite wiring. That asymmetry — trivial to build, risky to depend on — is the whole verdict. The opportunity score of 7.39 likely reflects unmet demand for Materialize-in-PHP tooling, but this package does not meet it: it serves a framework the requester is not using, at a vintage nobody should ship.
How can I help you explore Laravel packages today?