Defining Custom Page Types in Sulu with XML Templates
Sulu defines custom content types as XML page templates in config/templates/pages, not YAML. A worked blog_post example, cache-clearing steps, rendering, JSON options, and pitfalls.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
Sulu defines custom content types as XML page templates in config/templates/pages, not YAML. A worked blog_post example, cache-clearing steps, rendering, JSON options, and pitfalls.
Learn how Symfony autowiring resolves dependencies via type-hints to eliminate boilerplate, and how to handle ambiguous services using the debug:autowiring tool.
Learn how to offload heavy email sending in Symfony using Messenger and RabbitMQ. A concise guide covers the problem, architecture, step‑by‑step example, trade‑offs, and practical next steps.
Enable Symfony's autowiring and autoconfiguration to let the service container inject dependencies via constructor type hints. This guide shows the configuration, a concrete NewsletterManager example, limits like ambiguous interfaces, and verification commands.
An architecture note on adopting Symfony Messenger with the Doctrine transport: message design, serialization trust boundaries, retry policies, and failure handling.
An architecture note on Sulu CMS: how webspaces, dynamic routing, and the admin/frontend split define your data boundaries, plus the cache and search-index failure modes that bite in production.
Manual bundle registration becomes brittle across Symfony upgrades. Flex recipes automate configuration patches service definitions and routes while adapting to your project's version.
Sulu's XML page templates plus the Smart Content type let editors control dynamic listing pages — filters, tags, limits — without a developer touching a query. Here's a working news index example and the trade-offs.
Hardcoded URLs in Contao content break silently when aliases change. Insert tags store references instead of literals — here's the engineering case, the caching catch, and a custom tag pattern.