Appearance
Developing modules
Development of third-party modules is the backbone of all custom development within SproutCMS.
Typical dev process
A high-level overview of a typical development process would be:
- Use the module builder located within the dev tools to create a skeleton module
- Register the module in config/config.php
- Run a database sync to get the new tables
- Polish the admin area - change field types, set up dropdowns, validation, etc
- Develop front-end controllers and views
Module registration
Modules are registered by adding the name of the module in the config/config.php file
config/config.php
php
/**
* Enabled sprout v3 modules
*/
Sprout\Helpers\Register::modules([
'HomePage',
'Blogs', // new module in "modules/Blogs" directory
]);Namespaces
All modules must have a unique namespace. The namespace must follow the following format:
SproutModules\<Organisation>\<ModuleName>
The final segment of the namespace - the name of the module - is also used as the name of the directory in the modules directory.
Therefore, a blog module produced by the company Acme Inc would use the namespace SproutModules\AcmeInc\Blogs and the files would be located in the directory modules/Blogs.
All code within this module would existin within sub-namespaces within this namespace, and the file/directory structure mirrors the namespace layout.
Futher to the above example, a controller in the blogs module would be in the namespace SproutModules\AcmeInc\Blogs\Controllers and the file would go in the directory modules/Blogs/Controllers.