Feature Wiki
Tabs
(Project) Refactoring of ServicesObject
Page Overview
[Hide]This is a project page that bundles several feature wiki pages which belong to a larger development activity for the ILIAS component [[]].
1 Aim of Project
Services\Object is at the very base of the object hierarchy of ILIAS. It relies havely on inheritance, has seen a few, never really finalized, attempts at refactoring and modernization, that have left their traces, has been used as a dump yard for function with no home and has never been clearly delimited in its functionality. Thus it is the aim of this project:
- To clean-up the code of `Services\Object`, remove static functions, remove duplicate implementation of functionality, centralize the use of the ILIAS-Dependency-Injection-Container.
- Remove all classes containing a numeral '2' in their name, i.e. `ilObject2` and `ilObject2GUI`.
- Remove `ilObjectListGUI` and restructure its functionality.
- Finalize the already introduced `Services\Object\Properties`-Infrastructure and remove `ilObjectServiceSettingsGUI`.
- Improving the coverage of `Services\Object` with Unit-Tests.
These are just the first steps to get a clearer picture. As I see it right now, the final goal should be to remove inheritance completely from Services\Object .
On a more abstract level the goals of this project are:
- To make Services\Object and by extensions ILIAS more secure.
- To make the code of Services\Object and by extensions ILIAS less interdependent and to make its dependencies clearer.
- To make the code of Services\Object and by extensions ILIAS easier to understand.
- To make the code of Services\Object and by extensions ILIAS easier to maintain.
2 Involved Maintainers and Stakeholders
- Implementation will be done by Kergomard, Stephan [skergomard], but will most probably affect code in many, if not all, components. I will try to work through Pull-Requests, but any help is always welcome.
3 Timeline
As quickly as funding and collaboration/coordination with other maintainers allow, as slowely as needed.
4 Related Feature Requests and Status
This is first and foremost a refactoring. Features might be linked to it. The table shows features and potential features with a probable link to this project.
Feature Request | Suggested by | Funding | Planned Release | Status |
---|---|---|---|---|
Improve and Disentangle Copy and Adopt Content (no FR yet) | ||||
… | ||||
… |
5 Further Results
It is hoped to unlock further potential for improvement e.g. in the command-flow and in RBAC by these improvements, but this is for a next step.
6 Additional Information
…
7 General Discussion
Please discuss specific questions of feature requests on the related feature wiki pages. This discussion section is only for a general discussion of the project and its realisation.
Technical Board, … :
UI-/UX-Experts, … :
…
Last edited: 18. Oct 2024, 17:30, Kunkel, Matthias [mkunkel]