I'm building a tax office self-service application with Symfony2 that will have a modular structure.
These modules are contained within separate bundles, for example a TaxBillsBundle, DirectDebitBundle and PersonalDataBundle. These bundles contain the frontend/backend functionality, entities, etc.
The idea is to have the AppBundle glue the modules together. Now, since this is my first application in Symfony2, I'm not sure how to approach this.
This is the main screen of the application:
Each tile represents a module. What is the best way to compose this screen? The AppBundle is responsible for displaying the tiles, but not for their contents. I don't want to touch the AppBundle when adding new modules.
A co-worker suggested to use the event system. The AppBundle could 'broadcast' a request for tile contents, to which the modules (subscribers) can respond. Once all tile contents are collected, the AppBundle could compose the page. Is this a reasonable approach? Any other ideas?