Feature Wiki

Information about planned and released features

Tabs

Refactoring of ServicesObject

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

Move Add New Item to Toolbar and into Modal

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: 24. Oct 2023, 09:36, Kergomard, Stephan [skergomard]