Create a new MenuLinkContentRepository for the code from Drupal\menu_link_content\MenuLinkContentStorage

Created on 23 October 2023, 8 months ago

Problem/Motivation

The database driver for MongoDB needs to override the class Drupal\Core\Entity\Sql\SqlContentEntityStorage. MongoDB does document/JSON storage instead of relational database storage.
The MenuLinkContent entity is overriding that class in Drupal\menu_link_content\MenuLinkContentStorage. The problem for the database driver for MongoDB is that it then also needs to override the methods in Drupal\menu_link_content\MenuLinkContentStorage. It also needs to duplicate the code inside Drupal\file\FileStorage too. Duplicating code is wrong.
Another problem is that the code in Drupal\menu_link_content\MenuLinkContentStorage class is that it is NOT extending the functionality from the class Drupal\Core\Entity\Sql\SqlContentEntityStorage. The extra code can easily being moved to another class.

Proposed resolution

- Create a new Drupal\menu_link_content\MenuLinkContentRepository class/service and move the code/methods from Drupal\menu_link_content\MenuLinkContentStorage to the new class/service.
- Deprecate the methods and the class Drupal\menu_link_content\MenuLinkContentStorage.

Remaining tasks

User interface changes

None

API changes

- New service menu_link_content_repository with the method getMenuLinkIdsWithPendingRevisions().
- The method getMenuLinkIdsWithPendingRevisions() in the class Drupal\menu_link_content\MenuLinkContentStorage is deprecated.
- The class Drupal\menu_link_content\MenuLinkContentStorage is deprecated.

Data model changes

None

Release notes snippet

None

πŸ“Œ Task
Status

Active

Version

11.0 πŸ”₯

Component
Menu link contentΒ  β†’

Last updated about 1 month ago

Created by

πŸ‡³πŸ‡±Netherlands daffie

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Production build 0.69.0 2024