Do you know what's involved with Drupal 9, and why? On June 3rd, 2020, Drupal 9 was officially unveiled. In order to maintain their capacity to get security updates on a bi-annual basis and gain full functionality, businesses will need to upgrade to it at some point in the future. If you've ever had to migrate from another CMS to Drupal, you'll know that the process is much more time-consuming and exhausting.
In contrast, the transition from D7/8 to D9 is a breeze. In order to better understand why Drupal 9 is a superior choice, let's go into more detail.
Drupal 9 was predominantly built within Drupal 8 using deprecations and optional updated dependency support. This was done to facilitate a number of benefits:
-
All Drupal 9 code will be deployed on Drupal 8 sites before D9 is released. Meaning issues in the newer code can be addressed in D8 ahead of time.
-
Feedback is then given and incorporated into the new code, reducing refactoring
-
The user benefits from a smooth path from D8 - D9 as smaller steps have been made
Drupal 9, unlike its predecessors, is not a major overhaul of Drupal. There are, in fact, only two critical differences in D9:
-
Updates on dependences in versions that remain supported
-
Removing of code that was deprecated for removal, prior to the release of Drupal 9
Putting those two things aside, Drupal 9 is set to be pretty much the same as what you see in Drupal 8.9.0.
Drupal.org illustrate this idea by using the metaphor of a train. Imagine your website is a train. Upgrading to a new major version would mean moving the train to a new track. By starting on Drupal 9, you'll simply be moving along the same track to the next station.
How will third-party dependencies be affected?
-
There will be a Symfony update from 3 to 4.4. This comes with some huge performance gains with Symfony 4 (over previous Symfony versions). Tobias Nyholm illustrates this here:
-
Other dependencies will either be added, updated or removed
What are the new features of Drupal 9?
Drupal 9.0 doesn't offer any new features compared to Drupal 8 (beyond what we've discussed about the updated dependencies).
Drupal 9.1 and beyond will see some new backwards compatibility features arriving every 6 months after Drupal 9.0 is released.
The major benefit of Drupal 9 over its predecessor is how the platform will be supported by security fixes as of November 2021.
The biggest benefit of Drupal 9 of itself is the ease at which you can upgrade to it from Drupal 8.
If you're keen to see new features, you won't have to wait long as Drupal 9.1 onward will continue this pattern of adding new features into Drupal Core.
Drupal 9.1 onwards will continue adding new features to Drupal core.
What are the environment prerequisites of Drupal 9?
Apache
You'll need version 2.4.7 as a minimum
PHP
-
You'll need PHP 7.3 as a minimum
-
PHP 7.4 works, but isn't a mandatory requirement
-
At the moment, PHP 8 isn't supported, but there is work being done to get it there quickly
Database backend and hosting
-
If you're using MySQL or Percona, you will need version 5.7.8
-
If you're using MariaDB, version 10.3.7 is the requirement
-
If you're using SQLite, version 3.26 is required. We can help you with this, so you should contact us.
-
Please note PHP 7.4 doesn't use the SQLite system provided so you will need to ensure your PHP is compiled with this version as a minimum.
-
If you're using PostgreSQL, version 10 is required with the pg_trgm extension.
Drush
As we know, Drush isn't a mandatory requirement, but a vast number of people use it. You will need Drush 10 for compatibility with Drupal 9.
Why did Drupal deprecate on the way to Drupal 9?
When a more efficient solution to a problem came up, Drupal decided it would be better to introduce them and simultaneously deprecated the old ones.
What modules have been removed?
You'll no longer see SimpleTest or Place Blocks. These have been removed from D9.
There will be more modules deprecated and eventually removed as we head toward Drupal 10.
What about 9.0.x and 9.1.x branches?
-
9.0.x is the latest major version that has dependency updates and deprecates APIs removed.
-
9.1.x is open to the development of features.