Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] UI: improve segregation of public and internal interfaces. #8805

Conversation

thibsy
Copy link
Contributor

@thibsy thibsy commented Jan 8, 2025

Hi folks,

This PR may seem huge, because it affects almost all factory implementations and related unit tests, but the actual changes can be summarised to this:

  • Adds documentation about the public and internal interface segregation, see here.
  • Adds DI for ALL nested UI factories and adds them to Init\AllModernComponents. There have been several factories which were created dynamically on each call.
  • Changes all UI factory implementations to return concrete implementations rather than the interface. The reason for this becomes clear when reading the document about change 1.
  • Removes all unnecessary PHPDoc annotations of UI factories. I needed to remove all @inheritDoc annotations in order for intelisense to suggest the concrete implementation only. While at it I also removed some other unnecessary comments.

What the PR does at its essence: create a clear boundary between public and internal context, so we can start implementing internal components and only expose them internally.

I am happy to discuss this PR with you :).

Kind regards,
@thibsy

@thibsy thibsy added kitchen sink improvement php Pull requests that update Php code documentation Pull requests that only update or add documentation. labels Jan 8, 2025
@thibsy thibsy force-pushed the feature/11/ui-interface-segregation branch from 726f6b6 to c8b2f35 Compare January 10, 2025 10:33
@Amstutz
Copy link
Contributor

Amstutz commented Jan 13, 2025

thx a lot for the large clean-up, and adaptation of the docu! Highly appreciated. You are welcome to merge, as soon as the conflicts are resolved.

@klees and @Amstutz

@thibsy thibsy force-pushed the feature/11/ui-interface-segregation branch from 9ea7adc to a8073e2 Compare January 13, 2025 13:44
* Adds documentation about the public and internal interface segregation.
* Adds DI for ALL nested UI factories and adds them to `Init\AllModernComponents`.
* Changes all UI factory implementations to return concrete implementations rather than the interface.
* Removes all necessary PHPDoc annotations of UI factories.
@thibsy thibsy force-pushed the feature/11/ui-interface-segregation branch from a8073e2 to c8119a4 Compare January 13, 2025 13:47
@thibsy thibsy merged commit a328bfd into ILIAS-eLearning:trunk Jan 13, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Pull requests that only update or add documentation. improvement kitchen sink php Pull requests that update Php code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants