helios-ag/fm-bbcode-bundle
Symfony bundle that integrates the FM BBCode parser, making it easy to parse and render BBCode in your applications. It provides a configurable service and Twig filter for converting BBCode to HTML.
Verdict up front: unchanged, and the 7.0 release strengthens rather than weakens the original conclusion. helios-ag/fm-bbcode-bundle is a Symfony bundle (Composer type symfony-bundle) whose entire integration surface — kernel registration, DependencyInjection extension, Configuration tree, Twig bundle wiring — assumes a Symfony full-stack kernel. The 7.0 note ("Symfony 3 without any deprecation messages") is a deprecation-cleanup pass against Symfony 3, which reached end of life in January 2019. A maintenance release that re-baselines on an eight-year-old EOL framework line does not move this package toward a modern Laravel stack; it confirms the maintainer's target is Symfony 3, i.e. the Laravel 5.x era. Package score (~4.95) and opportunity score (~14) still read "low value, low momentum."
Architecture fit
fm_bbcode-style keys for tag whitelists, emoticon maps, URL/video handlers, HTML passthrough rules), and Twig filters/extensions.Illuminate\Container, its own service providers, its own config repository, and Blade — not Twig by default. There is no Kernel::registerBundles() path to hook into.symfony/framework-bundle and twig/twig to 3.x-era constraints. A modern Laravel app pins symfony/* to current majors; Composer either fails the solver or drags symfony/framework-bundle in as a transitive dependency. Both outcomes are unacceptable.Integration feasibility
composer require into Laravel: not feasible, and 7.0 changes nothing here. The version jump to a 7.x major also means any existing constraint research against the 3.x line is stale; there is no published UPGRADE guide beyond a single line, so even the Symfony-side diff is opaque.create_function, dynamic-property deprecations, /e-modifier-era regex, and untyped Symfony interface signatures.s9e/TextFormatter, mature BBCode plugin, actively maintained): still the most feasible path, with a config-parity layer to preserve tag semantics.Technical risk
NOASSERTION license classification is unresolved and unaddressed by this release. Must be cleared by legal before any distributed (on-prem/SDK) offering; a GPL-family finding would change the product decision.Key questions
[html] tags? If yes, the risk profile changes materially and a sanitizer is mandatory.Stack fit
BbcodeService contract in the app layer, one adapter implementation, a BbcodeServiceProvider binding it. The adapter wraps s9e/TextFormatter (BBCode plugin) — PHP 8.x compatible, maintained, configurable tag set, no Symfony coupling.Configuration into plain PHP arrays and feed them into the new adapter. That preserves behavioral parity without framework baggage.Migration path
s9e/TextFormatter on the same corpus. Compare. The 7.0 tag is the correct fork base only if it actually advances the PHP floor; verify, don't assume.s9e. Default expectation remains re-implement.Compatibility
Sequencing
Legal → dialect spec → dual spike (7.0 fork vs. s9e) → decision gate → adapter → parity + XSS harness → flag-on canary (internal users) → backfill → flag removal. The spike must precede any date commitment; the fork branch has an unbounded tail and should carry an explicit kill criterion (e.g., >5 dev-days without a green corpus). Add one step to the spike: read the 7.0 tag's diff, since a one-line release note is not a changelog.
Maintenance
Support
Scaling
Failure modes
Ramp-up
How can I help you explore Laravel packages today?