Menu links map very well to the entity system, from CRUD operations to access control and rendering. As a huge bonus, we get fieldability support (not in this initial patch though) and the ability to deprecate *a lot* of contrib modules from the menu_* namespace.
Convert menu links to the entity system. In order to keep the initial conversion patch at a reasonable size, make the entity class implement ArrayAccess so we can keep most of the current code intact.
Review the latest patch.
User interface changes
hook_menu_link_alter()is replaced by
hook_translated_menu_link_alter()is replaced by
Probably others that don't come to mind right now.
Original report by Dave Reid
Modules need to be able to load menu links without worry about access (XML sitemap, token/pathauto). My initial workaround for this is inbut I think menu links map very well to the entity system seeing as they could take advantage of entity caching and loaders (menu item = entity, menu that the item belongs to = bundle). We can do other stuff like abstracting the access checking of a menu link from its loading, just like we do with other entities.
|PASSED: [[SimpleTest]]: [MySQL] 50,066 pass(es).|
|PASSED: [[SimpleTest]]: [MySQL] 49,022 pass(es).|
|FAILED: [[SimpleTest]]: [MySQL] 48,656 pass(es), 12 fail(s), and 3 exception(s).|