Preparing for Drupal 8

This guide pulls together various resources we have put together that will help you prepare for Drupal 8. This guide is focused on related software and concepts that will ease your on-ramp to Drupal 8, but does not dive into actually using or working with Drupal 8 directly. Drupal 8 has adopted a lot of different open source projects and policies in an effort to reuse existing open source work, reduce "Drupalisms," and make Drupal more approachable to people from outside the Drupal way of doing things. This has led to the incorporation of elements of the Symfony2 framework in core, and using the Twig templating system to replace the Drupal PHPTemplate system, along with many other changes. Working through these tutorials, learning these concepts, and understanding how these tools function outside of Drupal will be very helpful to provide context once Drupal 8 gets up and running.

To get an overview of What's New in Drupal 8, we have a series of individual presentation-style videos covering the big changes. This group of lessons gives a review of what has changed, why it has changed, and what you'll need to learn to get up to speed.

Composer is a dependency manager for PHP, which is included in Drupal 8 to aid with the management of the external libraries we have incorporated. It is also just a really handy tool to use when working with PHP outside of Drupal. Aside from Drupal core, Drush now uses Composer as well to handle installing and updating.

Symfony2 is a PHP framework that is composed of many modular components to accomplish common tasks. Drupal 8 has incorporated several of these components, but not the whole framework. Our introduction to Symfony series is a great overview of how the Symfony framework is set up to work, and how some of the major components work together. Of particular interest to Drupal developers are the routing system that maps an incoming HTTP request to the code, and the class autoloading that Symfony uses, both patterns are used extensively in Drupal 8.

One of the big changes for Drupal 8 is moving to more Object-Oriented PHP, which is the modern way of using PHP, as compared to procedural PHP, which is what Drupal has used in the past. As part of these architectural changes, the concept of Dependency Injection, and Service Containers, will be regularly encountered in Drupal 8. You should wrap your head around this programming best practice now.

For the theme layer, it has often been a long struggle for people to get comfortable using the PHPTemplate system, which has been in Drupal for many versions now. In Drupal 8, that old PHP-based system is being replaced with the Twig templating system, which should make it clearer and easier to work in the Drupal theme layer.

In Drupal 8 you will see that there are a lot of files that end in .yml. This is due to Drupal 8 using YAML to implement the new Configuration Management system, which is probably one of the biggest new features in Drupal 8. As well as moving many of Drupal 7's declarative info hooks to .yml files. YAML is a data serialization format that has been around for a while, and you'll be seeing a lot of it in Drupal 8.

As of Drupal 8, the Drupal community has moved to using Semantic Versioning for the release numbering system for core.

Drupal 8 is still in flux, as it currently works its way through beta releases, making it very difficult to create hands-on video tutorials that will be accurate once Drupal 8 is released. In addition to this guide, we stay abreast of Drupal 8 development, regularly blogging about the changes that are coming. You can follow our explorations of Drupal 8 by following our blog, or checking in on our Drupal 8 Resources page.