Table of Contents
Development Information on the Backend
Development information (architecture, mechanisms) related to the backend are documented per feature. Also items for refactoring are mentioned, so they are not lost.
Global Architecture
Who feels like writing a part on this
Features of the Backend
The code has become quite big, so it seems handy to explain parts on a feature basis.
Possible Refactoring Opportunities
Areas for improvement on parts of the code can be mentioned here with a short explanation.
Deleting of Items
Currently the responsibilities for deleting of objects are unclear. When deleting a project the project teams, project team players/staff, matches, et cetera are deleted by the project object, whereas is seems more natural to delegate the responsibility of deletion to to the logical parent of objects. So a project will instruct its rounds to remove themselves before it removes itself, a round will instruct its matches to remove themselves before it removes itself, and a match will instruct its match players/statistics/events to remove themselves before it removes itself.
Code reference: function remove() in file administrator/components/com_joomleague/controllers/project.php