Change record status: 
Project: 
Introduced in branch: 
8.0.x
Introduced in version: 
8.0.x
Description: 

General

This change record is to collect changes from
#2407505: [meta] Finalize the menu links (and other user-entered paths) system and it's children and very related issues.

Menu links not storing routes, storing URI

Before:
Menu links could be stored as routes, but if that route goes away, and another thing makes that path valid, the path still went to the route and would be broken.

Now:
Menu links are stored with a link field, and it stores using a URI.

The entity base table structure, see baseFieldDefinitions()
Before:
route_name
route_parameters
url
options

After:
link

See #2406749: Use a link field for custom menu link

Use user-path: scheme to Url class

before:
some usages like
Url::fromUri('base:...)

after:
should use user-path:
Url::fromUri('user-path:...)

See docs param $uri on Url::fromUri().

See #2417333: Add support for user-path: scheme to Url class

Menu Link form uses Link widget, stores as user-path:path

Before:
The data in the table is stored like path

After:
The data in the table is stored like mostly like user-path:path OR sometimes like entity:node/1

See #2416955: Convert MenuLinkContent to use a link widget

Background

Change record:
Menu links converted to plugins, including static, views, and content entity implementations
https://www.drupal.org/node/2302069 might be related.

Impacts: 
Site builders, administrators, editors
Module developers

Comments

arla’s picture

Note that user-path: changed to internal: with #2417567: Rename user-path: scheme to internal: