typo3fluid/fluid
typo3fluid/fluid is a standalone PHP templating engine and the rendering core behind TYPO3. It provides secure, logic-light HTML templates with layouts, partials, sections, view helpers, and caching for maintainable server-rendered views.
*.fluid.html → *.html → bare name, with path-ordering preserved) supports per-tenant, per-package overrides without forking templates. This directly enables a packaging story: ship defaults, let customers override.UnsafeHTML opt-in interface gives an auditable bypass story — cheaper to defend in security review than "we escape in the controller."AbstractTemplateView shortcuts). A v4→v5 upgrade is a plannable work item, not a surprise; the active v2.14 maintenance line also signals that older integrations aren't abandoned mid-flight.Consider it when:
StrictArgumentProcessor enforces ViewHelper types (including union types, iterable, countable, callable), which retires a lot of hand-written validation code.Look elsewhere when:
Executives. Fluid is a mature, actively released PHP templating engine with a security-conscious default (auto-escaping) and a maintenance trajectory that signals investment — v5 modernization plus continued v2/v4 maintenance lines. The strategic value isn't "a template engine"; it's that it lets us ship a governed component system with typed, validated, self-documenting templates and CI-checkable analysis, at low licensing cost under LGPL-3.0. The risk is ecosystem size: standalone adoption is small and documentation leans on TYPO3 material, so this should be a deliberate, contained choice with a named owner and pinned versions — not a platform-wide mandate. Recommend a scoped pilot with a clear success metric (time-to-new-component, template defect rate in CI) before committing.
Engineering. The case is trust in the template boundary: StrictArgumentProcessor makes declared ViewHelper types actually enforced, errors point at the offending template and line, and the Annotations + component-listing APIs plus the CLI analyzer drop straight into CI. Template resolution and override ordering are explicit and stable, so tenants and packages can override without forks, and escaping is on by default with UnsafeHTML as the one audited bypass. The costs are honest: a hard v4→v5 migration with pre-announced breaking changes (strict argument validation, .fluid.* extension and fallback resolution, deprecated AbstractTemplateView shortcuts), a small maintainer group, and docs that defer to TYPO3. Mitigate by pinning to a major, keeping our ViewHelper surface small and internal, adding template analysis to CI, and avoiding unmaintained third-party ViewHelper packs.
How can I help you explore Laravel packages today?