How to Prepare for Drupal 7 End of Life and What to do Next
The world of technology is constantly evolving and strives to create new solutions, as well as to improve the old ones. Consequently, the life cycle of every software sooner or later reaches its inevitable end. Such a fate awaits the distinguished and still popular Drupal 7 with the end of its official support by the developers. This is a great moment to recall the novelties it brought in relation to the previous versions and to shed some light on what's next.
Released on 5 January 2011, Drupal 7 was the successor to Drupal 6, obviously, and brought many awaited and – above all – necessary changes. Here are some of the most important ones.
- The concept of entity was introduced, known from many other solutions. Hereafter, entities can be anything – from a user profile and a node, to things like a comment or a taxonomy term.
- Support for multisite appeared.
- Content Construction Kit (CCK) became a module in the Drupal 7 core.
In addition, there were many smaller, but no less important improvements, such as: improvement of performance and security, changes in hooks and API, reduction of system requirements, ability to create shortcuts, scheduling tasks using cron, and many, many more.
Drupal 7 end of life - change of date
Originally, Drupal 7 end of support was planned for November 2021. Then, this date has been changed to 28 November 2022 and - most recently - to 1 November 2023. Where did this change come from? As we may learn from the official information on this topic, many companies and institutions are still using Drupal 7. Therefore, the Drupal team decided not to leave so many websites without security updates. What's more, they will annually re-evaluate the Drupal 7 End-of-Life date, considering web pages based on this version.
This means that there will still be support covering the security and development of patches for Drupal 7 websites. It also means extra time to move your projects to newer and dynamically supported and developed versions of Drupal.
Drupal 7 vs Drupal 8
The introduction of Drupal 8 meant a very big and significant change towards the development of the system. Let's take a look at some of the most important changes and improvements when compared to the previous version.
- Drupal has been rewritten using the Symfony framework. For those unfamiliar with the topic, Symfony is one of the most popular PHP frameworks. Therefore, from the very beginning Drupal could boast that it gets a lot of support from the community and creators associated with Symfony. This change is actually so big, because the earlier Drupal versions weren’t based on any such powerful frameworks.
- A new engine for creating templates has been introduced - the well-known and popular Twig (this is the result of switching to Symfony, where this engine is also used). This streamlines the work when creating templates, and brings the way of implementing them closer to modern standards, abandoning the previous themes and PHP templates.
- The lack of a sensible text editor in Drupal 7 has been solved in version 8 with CKEditor - an extremely powerful and multifunctional tool for working with content.
- The Views module has become a part of the system's core.
- Drupal 8 brought almost 200 changes and patches that you can read about on Drupal.org.
You may also be interested in: 10 tricks to work efficiently with the Composer in Drupal 8
Then is the change from version 7 to version 8 or even version 9 (which you'll read about further down) a good idea? To put it simply: YES! From the very beginning, switching to Drupal 8 seemed like a necessary move. The number of novelties and possibilities introduced at that time by version 8 was stunning, and the obsolete solutions known from Drupal 7 were starting to be a drag in combination with the raging development and progress in the field of web development.
Then what is the cause of such a large number (about 560 thousand active installations - as of July 2021) of websites still operating on Drupal 7 and of the many years of support from the developers provided for such an old version of software (we'd like to remind you that Drupal 9 released in June 2020 is currently the default version)? It's all the result of how great a revolution Drupal 8 was and what great changes have been made to the very logic that underlies the entire system. The introduction of Symfony as the base framework for Drupal was a double-edged sword. Although it actually brought only good changes, it led to practically no compatibility with the previous versions. Upgrading from Drupal 7 to 8 couldn’t be done automatically, and sometimes even required rewriting the entire page from scratch. As you can imagine, this could be very problematic for systems maintained over the years, not to mention the cost that such a change could generate.
Today, however, we are already richer with years of experience. Upgrading from 7 to 8 doesn't have to be as titanic a job as it initially was. There are many tools on the market that can help us with the migration and make it easier.
Drupal 8 EOL - What’s next?
Let another fact be evidence for the popularity of Drupal 7: the official support for Drupal 8, its older brother, ends on 2 November 2021 – a year earlier. The reason for this decision is primarily that updating Drupal 8 to 9 is much simpler and often doesn't require any additional work from us. Hence, moving our website from version 7 to 8 is the first step to updating to the latest version that's being currently developed. Drupal 9 in relation to 8 is simply an evolution, not a revolution of the ideas behind the premiere of Drupal 8. For more information on this topic, you can visit the official page of version 9 and our post on the transition to Drupal 9.
Drupal 7 EOL - professional help
As we've already established that the transition to the latest version of Drupal is actually a necessity, and with the transfer of the planned Drupal 7 support end date, we've gained some additional time, I'll introduce you to this process. I'll try to distinguish two possible paths here: for those less knowledgeable on the subject and for the advanced users who want to learn about our methodology.
Transition from Drupal 7 to 8 for beginners
As already mentioned, the updating process isn't automatic here and requires at least basic technical knowledge and experience in carrying out similar migrations. If you don't feel up to it, we recommend that you contact the professional Drupal support team for help. Using the services of specialists experienced in this type of migration can significantly shorten the entire process, as well as dispel any doubts related to it.
Transition from Drupal 7 to 8 for advanced
Now we'll show you, based on our experience, how to handle such a process. First of all, it'll be easier for us to migrate the page to version 8, and after that – to version 9. We should avoid large jumps (i.e. from Drupal 7 to 9), because they may cause more needless chaos than necessary.
- Let's start by reviewing the available modules and making sure that all the ones we have we’re actually using. It's also important to first make sure that we understand the functionalities of the page in order to be able to fully translate them into the new Drupal version.
- Changing the version is a good time to clean up and redesign the layout of our page, which may be outdated.
- Custom modules need to be rewritten. There is no other option here but to simply rewrite the modules, following the new method of implementing them.
- As is the case with modules, rewriting the custom themes is also necessary. The introduction to the Twig template engine is a big change, and translating the old templates into this solution is fully obligatory.
- Drupal 8 has changed the way data is stored in the database, as well as its structure, so data migration is a must. Such modules as Migrate, Migrate Drupal, Migrate Upgrade and Migrate Plus will help us with this.
- THE MOST IMPORTANT POINT: backup, backup, backup! Before making any changes (let alone as crucial as this one), it's necessary to create a backup. It'll save you trouble in the event of an unforeseen failure during the migration. It seems trivial, but this issue is often underestimated.
- It's worth ensuring that our Drupal is updated to the latest possible version of Drupal 7. This should minimize any difficulties in transferring the configuration.
If we manage to migrate the website to Drupal 8, upgrading it to version 9 itself shouldn't cause any major problems. First of all, we need to replace the obsolete methods in our code with new code or just get rid of them. Drupal-check is one of the tools that can help us find such a code.