Drupal 8.7.0 was released on 1st May 2019. Apart from bug fixes and dependency updates, Drupal 8.7 facilitates creating page layouts and media management. Decoupled web experiences are now easier to manage and deliver, saving production time and effort.
JSON:API at Core - facilitates Decoupling
JavaScript Object Notation(JSON) is an open data format and syntax to exchange and store data, widely accepted as preferred data exchange used in web services, especially RESTful services.
JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests.
The latest Drupal 8.7 update includes JSON:API as a part of the Drupal core. This makes Drupal an API first platform for building both decoupled and omnichannel experiences. It facilitates building REST APIs in JSON through which a Drupal website can share its data with modern JavaScript Framework like React, Angular and other interfaces like Alexa, Chatbots, etc.
Functionality:
- JSON:API module exposes the entities as a standards-compliant web API which allow data to be pulled from third-party URLs or API’s.
- By enabling JSON:API module, you can create a RESTful API endpoint effortlessly for every type (content, taxonomy, user, etc.) in your Drupal application.
- JSON:API inspects your entity types and their bundles to dynamically provide URLs. These URLs access every entity using the standard HTTP methods, GET, POST, PATCH, and DELETE.
Benefits:
- It minimizes both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability.
- JSON:API ensures that a module should be production-ready. This means the module is highly opinionated about where your resources will reside, what methods are immediately available for them, and allow Drupal Core's permissions system control the access.
- Configuration pages are no longer present in this upgrade (Drupal 8.7). This means that you can get an API-driven Drupal application up and running with minimal effort.
Stable Layout Builder - effortless Layout creation
The Stable Layout Builder was released with Drupal 8.6 as an experimental module and is now stabilized in Drupal 8.7.
Functionality:
- Layout Builder is anchored on one of Drupal’s stronger features – the ability to create structured content; but it faces some of the same accessibility challenges encountered by WordPress’ Gutenberg editor.
- Drupal's Layout Builder offers a single, powerful visual design tool for three use cases:
- Layouts for templated content: Creation of ‘layout templates’ that will be used to layout all instances of a specific content type (e.g. blog posts, product pages).
- Customizations to templated layouts: The ability to override these layout templates on a case-by-case basis (e.g. the ability to override the layout of a standardized product page).
- Custom pages: The creation of custom, one-off landing pages not tied to a content type or structured content (e.g. a single "About us" page).
Benefits:
- Drupal 8.7's Layout Builder allows content editors and site builders to easily and quickly create visual layouts for displaying content.
- The Layout Builder provides the ability to drag and drop site-wide blocks and content fields into regions within a given layout. Additionally, custom "inline" blocks can be created for one-off details specific to a given layout.
- Users can customize how content is arranged on a single page, across content types, or even create custom landing pages with an easy to use drag-and-drop interface.
The Layout Builder powerful when combined with Drupal's out-of-the-box features such as revisioning, content moderation, and translations.
Watch the Demo of Drupal 8 Layout Builder here!
Media Library - better media experiences
Drupal 8.6 had Media Library in the Drupal core, which was a part of Media Initiative.
Media and the Media Library, have acquired best functionalities from a couple of contributed modules. Introducing amazing functionalities like reusable media, media types, media fields, and more. Drupal 8.7 Media Library comes with a new and easy to use user interface, making it easier to work with.
Benefits:
- Add diverse types to your site.
- Save and repurpose media in your Media Library.
- Insert media within your content.
- Embed remote YouTube and Vimeo videos via URLs.
There are Third-party library updates available in Drupal 8.7.0:
- Guzzle has been updated from 6.3.0 to 6.3.3.
- Previously, Drupal packaged a copy of the PEAR Archive_Tar library in a Drupal core namespace. In Drupal 8.7, this has been deprecated and replaced with a proper Composer dependency on this library. The dependency has also been updated to version 1.4.6.
- Coder to ^8.3.1
- CKEditor has been updated to 4.11.3.
- Twig has been updated to 1.38.4.
- A number of other PHP dependencies have also been updated, including:
- composer/installers to 1.6.0
- composer/semver to 1.5.0
- egulias/email-validator to 2.1.7
- paragonie/random_compat to v2.0.18
- Most symfony/* components to v3.4.26
- symfony/http-foundation to v3.4.27
- symfony/polyfill-* to v1.11.0
- Stylelint has been updated from 9.1.1 to 9.10.1.
- typo3/phar-stream-wrapper to v2.1.0
Other updates you can find in Drupal 8.7 are:
Internet Explorer 9 and 10 will not be supported in Drupal 8.7
The 8.7.0 release is a final goodbye to Internet Explorer 9 and 10. It removes a workaround that still existed in D8.5 and D8.6 Issue link: Internet Explorer 9 and 10 support dropped from Drupal 8.4.x
Goodbye PHP 5 support
Drupal 8.7 is the last release to support PHP 5. Updates for existing websites that use PHP 5 are still possible, but a warning will be displayed. In release 8.8, Drupal security updates will require PHP 7.
Entity updates will not be automatic
In new Drupal 8.7.0 release, the support for automatic entity updates has been removed. The reason is data integrity issues and conflicts. So the drush entity: updates (drush entup) command no longer works. Changes to entities will now be performed using standard update procedures.
Symfony 4 and 5 compatibility issues resolved
Additionally, numerous critical Symfony 4 and 5 compatibility issues are resolved in this release.
Changes to base themes (Stable, Classy)
This release includes some small changes to the core's base themes (Stable, Classy). Themes that extend one of these base themes should review the following changes. JavaScript messages template changes. Pager CSS ID changed from "pagination-heading" to a unique ID.
These Drupal upgrades are gradually getting us ready for Drupal 9. If you have questions regarding Drupal upgrades we are here to help. Drop us a word at business@qed42.com.