redking/fontawesome-picker-bundle
A Symfony bundle that adds a FontAwesome icon picker form type, letting users browse and search icon sets and select a glyph visually instead of typing class names. Handy for CMS fields, menu builders, and any admin form that stores an icon class.
Stack mismatch — primary blocker. The brief frames this as a Laravel/PHP package, but redking/fontawesome-picker-bundle is a Symfony 2+ bundle, not a Laravel package. It ships a Symfony FormType extension (and associated Twig/asset wiring) that depends on the Symfony Form component and the bundle auto-registration lifecycle. There is no service provider, no config publishing, no Laravel facade — nothing Laravel expects. Any Laravel effort is a port, not an integration.
Architecture fit. The functional scope is narrow: a form widget that renders a Font Awesome icon grid and stores the selected icon class string against a form field. That is a UI concern dressed as a backend dependency. It provides low architectural value — a competent frontend engineer could reproduce the picker in a few hours against current Font Awesome releases, with full control over icon-version drift.
Integration feasibility. Low. Concretely:
symfony/symfony to the 2.x/3.x era. Installing into a modern Laravel/Symfony app will either fail resolution or force unacceptable downgrades.Resources/public + Assetic/assets:install conventions, which do not map onto Laravel Mix/Vite.fa fa-* → fas fa-*, far, fab, icon renames and removals). Output icons will not render correctly against a current FA distribution without remapping.Technical risk. Very high, and concentrated in three places: (1) unmaintained — last release 2017-11-30, over seven years stale; (2) unvalidated — 2 stars, 0 dependents, effectively zero community signal or usage evidence; (3) transitive exposure — even as a dev/UI dependency it drags in an EOL Symfony version tree with known CVEs. The 0.14 score and 18.24 opportunity score reflect the same underlying story: small addressable value in a niche that no one has adopted.
Key questions for the requester. Why this package specifically — is there an existing Symfony 2/3 application it must match, or is this a greenfield ask? Which Font Awesome major version is in production? Is the requirement simply "let users pick an icon," or does it carry icon-set governance (curation, licensing, a11y labels)? Would a maintained JS icon-picker (e.g., fontawesome-iconpicker, iconify) satisfy the same need with no framework coupling?
Stack fit. Poor for Laravel, marginal even for Symfony. In Laravel the package has no entry point; the bundle's DependencyInjection, Extension, and form-type registration classes are inert. Reusing the PHP logic alone yields a class that produces an HTML fragment — the value is almost entirely in the JS/CSS assets, which are framework-agnostic and could be lifted directly.
Recommended migration path (Laravel). Do not attempt to install. Instead:
Rule::in(...)) backed by a curated allow-list of FA class names generated at build time from node_modules/@fortawesome/fontawesome-free/metadata/icons.json. This replaces the bundle's raison d'être with something versioned and testable.FormType.Migration path (Symfony, if that is the real context). Verify composer.json constraints against the target Symfony version first. If the host app is Symfony 2/3 and frozen, the bundle may install as-is — but confirm FA4 assets are what production actually serves. If the host is Symfony 5+, plan on porting to a modern AbstractType with a ChoiceType populated from a generated icon list, plus an Encore/Vite asset entry. The port is small and removes the dependency entirely.
Compatibility. Assume no compatibility with PHP 8.1+, Symfony 5/6/7, or Font Awesome 5/6 without work. Treat the package as frozen at PHP 7.x / Symfony 2–3 / FA4. Any deviation is bespoke remediation.
Sequencing. (a) Confirm FA major version and host framework version; (b) decide build-vs-port — recommendation is build; (c) generate icon allow-list from the pinned FA package; (d) implement picker component + validation rule; (e) add a regression test asserting every allowed class exists in the installed FA distribution. Budget roughly 1–3 engineer-days for the build path versus an open-ended compatibility effort for the port path.
Maintenance. The package is dead upstream. There will be no CVE patches, no FA version bumps, no PHP/Symfony compatibility updates. Adopting it transfers full maintenance ownership to this team on day one — with the added cost that we no longer control the original author's code style or test coverage (there is no evidence of either).
Support. None. No issue triage, no maintainer, 2 stars and 0 dependents means no community to lean on. Internal debugging will be entirely first-principles. This is acceptable only for code we own outright.
Scaling. Not a meaningful concern — it is a client-side widget with negligible runtime footprint. The real scaling constraint is organizational: every future FA upgrade becomes a manual audit of the frozen picker, and every icon-set change is a coordinated frontend change rather than a config bump.
Failure modes. Watch for: assets silently missing after assets:install/mix runs (bundle-registered assets do not follow modern pipelines); icon selection persists a class name that no longer exists post-FA-upgrade, rendering an empty glyph in the UI with no error surfaced; unvalidated free-text class values reaching the database and later injected into class attributes; and EOL Symfony transitives surfacing in a security scan with no fix path, forcing an emergency excise.
Ramp-up. Negligible to learn (a few hundred lines of form/asset glue) and negligible to unlearn — which is precisely the argument against adopting it. The cost is not comprehension; it is the permanent tail of ownership for a dependency that delivers one small UI affordance.
Recommendation. Do not adopt. At a 0.14 score with zero dependents and a seven-year-stale, framework-mismatched codebase, the package fails the basic adoption bar. Extract the MIT-licensed assets if useful, build a small first-party picker against the currently pinned Font Awesome release with an explicit allow-list and a validation rule, and close the requirement in under a week with no residual dependency risk.
How can I help you explore Laravel packages today?