Why is upgrading from Drupal 7 so complex?
Drupal has transformed into a framework where it is cross-dependent on Twig, Symphony, and other open source projects that stress the adoption of modern technologies and trends. The change is fundamental to keeping up with those modern technologies and to continue to integrate with other systems as more MarTech solutions have entered into the market. Some major changes include:
PHP: D8 was built to support PHP 7 and future versions, in order to provide better performance and longer lifecycle + simpler upgrades. PHP 7 support was added after Drupal 7 first launched, but was not included in its core architecture.
Symphony: D8 was built atop Symfony to help borrow core functions and bring Drupal into the wider PHP Open source community. This change also brought better support and streamlined development and coding standards.
Twig Templating: Paired with better architecture and framework support from Symfony, the front-end side of D8 was radically re-done to leverage Twig templating, reducing the complexity of custom D7 theming and bringing it in line with modern FE approaches that work between D8 and other PHP systems.
Contributed Modules: The upgrade from D7 prioritized a shift towards more flexible, robust modules rather than inventing every piece of functionality from scratch within the Drupal community.
This framework allows many organizations to avoid large re-platforms built from the ground up, after they upgrade their website from Drupal 7.