How prestashop/example-modules works
This repository is a collection of PrestaShop example modules, not one end-user application: each module demonstrates a distinct extension point or workflow. The clearest sampled workflow is the customer-review status action: an admin request reaches a controller, which dispatches a CQRS command; its handler looks up or creates the reviewer and updates its status. The multistore example separately demonstrates CRUD forms, a listing grid, and shop-aware operations. README-described capabilities are retained as module-level nodes where source wiring was not sampled, so their internal connections are intentionally omitted.
Main entry points: DemoMultistoreController.php Content block controller · ReviewerRepository.php Reviewer repository · ToggleIsAllowedToReviewHandler.php Toggle handler · CustomerReviewController.php Review action
Components 27
Admin experiences
- Review action
demoextendsymfonyform3/src/Controller/Admin/CustomerReviewController.php - Content block controller
demomultistoreform/src/Controller/DemoMultistoreController.php - Content block grid
demomultistoreform/src/Grid/Definition/Factory/ContentBlockGridDefinitionFactory.php - Admin grid demo
demo_grid - Controller tabs
democontrollertabs - Grid row actions
demoextendgrid
Data and forms
- Toggle command
demoextendsymfonyform3/src/Domain/Reviewer/Command/ToggleIsAllowedToReviewCommand.php - Toggle handler
demoextendsymfonyform3/src/Domain/Reviewer/CommandHandler/ToggleIsAllowedToReviewHandler.php - Reviewer repository
demoextendsymfonyform3/src/Repository/ReviewerRepository.php - Reviewer entity
demoextendsymfonyform3/src/Entity/Reviewer.php - Settings query handler
demoextendsymfonyform3/src/Domain/Reviewer/QueryHandler/GetReviewerSettingsForFormHandler.php - Reviewer records
- Content block query
demomultistoreform/src/Grid/Query/ContentBlockQueryBuilder.php - Content block forms
demomultistoreform/src/Form/ContentBlockFormDataProvider.php - Content block entity
demomultistoreform/src/Entity/ContentBlock.php - ORM persistence
- Doctrine example
demodoctrine
Platform integrations
- API customization
api_module - Dashboard hooks
dashexample - Console command
democonsolecommand - Form hooks
demoextendsymfonyform1 - CQRS and hooks
demoextendsymfonyform3 - Template extensions
demoextendtemplates - Module routes
demomoduleroutes - JavaScript routing
demojsrouting
Other components
- Admin user
- Admin user
Connections 12
- Admin user → Review action: requests status change
- Review action → Toggle command: dispatches
- Toggle handler → Reviewer repository: looks up reviewer
- Toggle handler → Reviewer entity: creates or updates
- Reviewer repository → Reviewer records: queries
- Settings query handler → Reviewer repository: reads settings
- Admin user → Content block controller: uses CRUD pages
- Content block controller → Content block grid: requests listing
- Content block grid → Content block query: builds grid query
- Content block controller → Content block forms: builds and handles
- Content block controller → Content block entity: loads content blocks
- Content block controller → ORM persistence: persists changes