Skip to content
-
Your first module
-
Module skeletonFolder layout, all fields of module.json, the bundle and installer class, contributing to the core with contributions.yaml, route and service configuration, versioning and upgrade.
-
Database and migrationsModule tables, Doctrine entities, numbered and idempotent SQL migration files, schema change patterns, initial data, uninstall and safe upgrade.
-
Menu and permissions#[CpAdminMenu], the Tools rule in AACP and capability definitions.
-
Forms and the Field APIField widgets, the image/file field, multi-value fields and the media picker.
-
CSS and assetsThe module's JS/CSS files, importmap, local libraries and the classes that go into the core stylesheet.
-
Search, settings and SEOSearchProvider, CpSetting settings, translations and cache clearing.
-
Extension points
-
Writing testsUnit and integration tests for your module; IntegrationTestCase, the test environment and what should be tested.
-
Publishing to the storeThe module package, the signed catalogue, the release flow, the compatibility check and how installation works step by step on the user's side.
-
Module checklistThe checks every module must pass before release (lessons from Portal).