As you may know, hopefully for GSOC I'll be working on refactoring the module system to one based on composer. However, before this can be done the existing module layer will need to be reworked to provide an actual module API, rather than the current heap of random bits and pieces. I think this should have the following goals:
- Provide a reflection API for getting information about the modules running.
- Allow modules to be installed in subfolders.
- Implement a resource loader system which loads classes, templates and assets from modules, taking into account module priority,
To that end, I'd like to propose a number of pretty radical changes:
- Separate the framework into SilverStripe\Base and SilverStripe\Framework namespaces (or something similar, maybe SilverStripe\Core) - the idea is that the Base namespace is responsible for registering modules and loading resources from them, while the Framework namespace is the actual functionality you're all familiar with. This makes it a bit easier to test and