Major APIs Improvements in Drupal 8 over Drupal 7
Drupal 8 brings in lots of new APIs and also comes up with many improved APIs of Drupal 7.
Here we discuss major APIs improvements in D8 over D7. We are presenting the list of APIs that gets bettered in D8.
Cache API Cache API is much ameliorated in D8. It is used to store data that takes much time to compute.
*Cacheability Metadata- All those things which are directly renderable or used to define what to render gives cacheability metadata.It has 3 properties:
*Cache max-age- These are for time dependencies caching.
*Cache Tags- These are for dependencies on data managed by Drupal like configuration and entities.
*Cache Contexts- These are for dependencies in the request context.
Entity API system was introduced late in the development cycle of D7. D7'S Entity API had to account for differences in working and accessing with entity properties(like node title & published status) and fields(like references, fields, images etc.) This interface is incorporated in D8 as everything is a field. Web Developers can interact with fields by using the same technic irrespective of they are bundle or base fields. Even the method that was used for querying information for entity had limited functionality in D7 but in D8, the method has been simplified.
JS libraries have changed a lot in D8. JS files that .info files called in D7 are referenced in yml files in D8. Both the CSS and JS are loaded through the same system for themes and modules. Drupal loads assets(JS/CSS) only if you wanted to load. It doesn't load all assets(JS/CSS) on all pages, as this is a bad front-end performance.
Quick Edit API
This API is new in D8. It is inspired and in some parts have the same functionality as in D7's Quick Edit module.API's features-In place editor plugins- It provides additional in place editors to improve the in-place editing experience.
D7 menu system rotated around hook_menu(), which provided a connection between callback functions and paths, also act as a cardinal place to carter menu items in different menus connected with paths, as well as providing tabs & contextual links for different paths and action links on pages. This is a mess to handle for one system.
In D8, all these functionalities are now separated into different systems. The connection of a controller with a path, paired with access checking and parameter upcasting, is now handled in the routing system. This system acts as a basis for path access on a D8 site. D8 menu system is a group of different APIs for menu items described by local tasks as well as modules, contextual links, and actions.
It provides a cardinal place for modules to store configuration data. The data can be simple like site name or more complex information handled with configuration entities, like content types and views. Configuration API comes in two varieties-
*Simple Configuration API- It is singleton use case means there can only be a single instance of this configuration. Ex-Site's name
*Configuration Entity API- It is used to store multiple sets of configuration. Ex- views, nodes types, fields.
In D8, Blocks are made up of two separate APIs for creating a user experience similar to what Drupal has maintained in past loops. These two APIs are-
*Block Plugin API- It is stand-alone reusable API
*Block Entity API- It is the D8 specific use case of visibility control and block placement.
Also, read- Why should you consider taking up Drupal 8?
You may also like:
These are the major APIs improvements in D8 over D7 and at the end, a lot depends on the development team too to use the benefits of the updates and advantages of a platform. Still, you need any help you can directly contact Auxesis Infotech.