MoodleDevChronicles - mudrd8mz/moodle-dev-chronicles GitHub Wiki
Moodle is a mature software with relatively long development history. Its codebase is a mix of different APIs, patterns and approaches. They all were introduced in certain time and space, by certain people with their own preferences and coding style. And they also evolved in time. Sometimes deprecating the older code explicitly, often just leaving it there to rust for backwards compatibility reasons.
As a result, it may not be easy for newcomers - and also more experienced contributors - to get familiar with certain areas or the Moodle core libraries. There is often not a single right place to point out as an exemplary code to follow.
This is an attempt to document certain areas of the Moodle code in a way that explains not only how they work and are supposed to be used, but more importantly why they were designed that way, where the design was coming from and how it eventually evolved.
- Book One: OutputtingHTML (work in progress)
- Book Two: RolesAndPermissions
- Book Three: DatabaseStorageAndXMLDB