How pascallinder/sulubasebundle works
SuluBaseBundle is a shared Symfony/Sulu CMS bundle for admin CRUD, localized entity handling, smart-content loading, and reusable admin fields. Its main workflow scaffolds an admin list and forms, routes CRUD requests through controller hooks to repositories, and returns entity data to the admin. Separate capabilities provide locale-aware smart-content resources, configurable content fields, theme-aware Twig colors, and persistence-time string trimming. The sampled source supports the controller/repository and field-registration links; unsampled implementations are represented only where the README and tree identify them.
Main entry points: app.js Field registration · BaseController.php CRUD controller · LocaleRepositoryUtil.php Locale repository utilities · AbstractEntityResourceLoader.php Smart-content loader
Components 24
Admin CRUD
- CRUD admin scaffold
Admin/AdminCrud.php - CRUD configuration
Admin/AdminCrudConfig.php - CRUD controller
Controller/Admin/BaseController.php - Locale controller
Controller/Admin/LocaleController.php - Enable toggle
Controller/Admin/EnableSwitch.php - Paginated list builder
Common/DoctrineListRepresentationFactory.php
Entity and content
- Base repository utilities
Repository/BaseRepositoryUtil.php - Locale repository utilities
Repository/LocaleRepositoryUtil.php - Locale entity trait
Entity/LocaleTrait.php - Smart-content loader
Content/AbstractEntityResourceLoader.php
Admin fields
- Field registration
Resources/js/src/app.js - Custom content fields
Resources/js/src/components/content/types - Generated link field
Resources/js/src/components/form/GeneratedLink.js - Snackbar toolbar action
Resources/js/src/components/form/toolbar/button/SnackbarToolbarAction.js - Snackbar service
Resources/js/src/services/SnackbarService.js
Shared runtime
- Theme color Twig support
Twig/ThemeColorExtension.php - String trim subscriber
Subscriber/EntityStringTrimSubscriber.php
Other components
- Admin user
- Sulu admin
- Doctrine entity store
- Sulu smart content
- Admin field registry
- Twig template
- Doctrine persistence events
Connections 23
- Admin user → Sulu admin: uses
- Sulu admin → CRUD admin scaffold: renders views
- CRUD admin scaffold → CRUD configuration: reads configuration
- Sulu admin → CRUD controller: sends requests
- CRUD controller → Base repository utilities: delegates CRUD
- Locale controller → CRUD controller: extends
- Locale controller → Locale repository utilities: loads and saves
- Locale repository utilities → Locale entity trait: sets locale
- Base repository utilities → Doctrine entity store: persists and removes
- Locale repository utilities → Doctrine entity store: queries and persists
- Paginated list builder → Doctrine entity store: executes list query
- Enable toggle → CRUD controller: handles toggle
- Sulu smart content → Smart-content loader: loads resources
- Smart-content loader → Doctrine entity store: reads entities
- Smart-content loader → Sulu smart content: returns content views
- Field registration → Admin field registry: registers fields
- Field registration → Custom content fields: registers components
- Field registration → Generated link field: registers field
- Field registration → Snackbar toolbar action: registers action
- Snackbar toolbar action → Snackbar service: uses service
- Snackbar service → Sulu admin: adds notification
- Twig template → Theme color Twig support: renders color
- Doctrine persistence events → String trim subscriber: invokes subscriber