Guide

Learn Drupal for Drupal 8, 9, and 10

What will you learn

  • What is Drupal?
  • Where to find resources targeted to your needs
  • Tips for learning various aspects of Drupal
  • About some new tools and workflows

Overview

The latest version of Drupal has a ton of great features for site builders and administrators, an object-oriented backend, and a Twig-based templating system. We're here to make sure you navigate this territory with confidence. We have the most accurate and up-to-date Drupal material you can find. With new versions of core coming out every 6 months, you can count on us to review and update all of our Drupal tutorials so that you never fall behind.

Get started

The Drupal User Guide will be your ultimate destination to practice building your first Drupal site. This is an excellent course to learn essential concepts and tasks in Drupal site building. You'll learn how to install Drupal, plan your site, design a content structure, build content types, views, place blocks, administering, and maintaining your Drupal site.

Categories
Basics, Site Building, Site Administration, Community
Drupal 8, 9, and 10

Or, maybe you want to install Drupal on your machine to walk through specific tutorials. We recommend installing DDEV as a local development environment, and installing Drupal using DDEV and Composer. Follow the steps in this tutorial:

More information

Installing Drupal using the instructions in this tutorial will give you a working Drupal site that can be used for learning, or real-world project development.

Before you can work on a Drupal site locally (on your computer), you'll need to set up a local development environment. This includes all the system requirements like PHP and a web server, that Drupal needs in order to run. Our favorite way to accomplish this is using DDEV.

In this tutorial we'll learn:

  • How to install and configure DDEV for use with a Drupal project.
  • How to use DDEV's integrated Composer to download Drupal and Drush.
  • How to install Drupal inside DDEV so you can access the site and start doing development.

By the end of this tutorial, you should be able to set up a local development environment for learning Drupal or working on a new Drupal project.

Find specific topics

If you have the fundamentals sorted out, but you need a refresher, or are taking on a new task, you can go straight to the information you need by browsing through our Guides and Topics. They are more specific topics grouped by major category, like Theming or Module Development, and let you zero in on exactly what you need right now. Of course, you can also always search our site to pull up a wide range of materials based on your keyword.

Learning Tips

There is a lot of ground to cover in Drupal, so in addition to our tutorial resources listed above, here are some tips and tricks from our trainers for learning how to use the Drupal content management system.

A lot of people are building sites with Drupal. You can read Drupal case studies to see what modules and tools others are using for their projects, which can give you some great ideas and tips.

Documentation and Resources

The Drupal project's documentation is created and maintained by the same volunteer community that creates the Drupal software. The documentation includes information to help orient newcomers, guides for using Drupal, creating themes, writing modules, and using contributed modules. Here are some of our favorite resources.

More information

An overview of some of our favorite Drupal documentation resources.

Getting help from the community

This chapter of the Drupal User Guide describes how to connect with the Drupal community, where to get support, and learning more.

Drupal 8, 9, and 10
3 tutorials

Site building

Our Build Drupal Sites guide for site builders contains a host of resources for folks wanting to learn how to use Drupal's powerful user interface and modules like Views and Layout Builder to build dynamic sites.

Categories
Site Building
Drupal 7, 8, 9, and 10

Theming

Start with the Essential lessons to get up to speed with theming in Drupal.

Categories
Theming
Drupal 7, 8, 9, and 10

The latest version of Drupal uses the Twig templating language, and the Twig documentation is a great resource for questions about using Twig, as well as learning about the Twig project. Drupal's Twig implementation adds some Drupal-specific functions and filters and handles content rendering using Drupal's Render API. Anything you can do in regular Twig you can also do in Drupal's implementation of Twig.

Drupal 8, 9, and 10
More information

Twig is a template engine for PHP, which is the language used in Drupal. Twig can be used to design templates in generic PHP applications as well as Drupal themes.

Alter and extend

Learn how to use Drupal's API to alter and extend Drupal in modules. Learn key concepts and systems in Drupal module development under Essential lessons, then dive deeper with Advanced concepts.

Categories
Module Development, Backend and Infrastructure
Drupal 7, 8, 9, and 10

One of the best resources that you should get familiar with from the start when working with Drupal code is the official API documentation site.

Another excellent resource for any developer is the Examples for Developers project on Drupal.org. This is a project that you can download, which contains multiple, well-documented example modules that implement Drupal's core APIs.

Drupal uses object-oriented programming (OOP) and YAML. If you are not familiar with OOP in PHP or YAML, you should probably review that before diving into the code.

Categories
Drupal 8, 9, and 10
More information

Object-oriented PHP utilizes classes and objects to organize code into reusable chunks. This approach helps us organize complex applications, such as Drupal, into modular code called classes that can be reused across the entire system.

YAML, which stands for YAML Ain't Markup Language, is a human-readable data serialization format that's been widely adopted in a variety of use cases in Drupal.

Drupal 8, 9, and 10
More information

YAML, which stands for YAML Ain't Markup Language, is a human-readable data serialization format that's been widely adopted in a variety of use cases in Drupal. Anyone wanting to write modules, or themes, for Drupal will need to understand YAML syntax. Even site builders are likely to encounter YAML at least in passing as YAML is the data-serialization format of choice for Drupal's configuration management system. Good thing it's pretty easy to learn even with the most basic of programming backgrounds.

This tutorial will look at the YAML data format and provide examples of how to write and read YAML. Starting with an introduction to the language's syntax and some of the strengths of YAML. Then looking at the difference between scalar data types like strings and integers, and collection data types like lists and associative arrays.

Since YAML in the Drupal world is read into PHP and ultimately becomes a PHP data structure that we can use in our own code we'll also look at how the YAML we write in a .yml file is represented in PHP data types. To do this we'll use the YAML Sandbox module that provides a handy textarea into which we can type YAML and have it parsed into PHP data structures.

Learning objectives

  • Explain what YAML is and its strengths as a data serialization format
  • Create scalar key/value pairs in YAML
  • Create lists, and associative arrays using YAML collections
  • Understand how the YAML you write is represented in PHP

Tips

  • In Drupal, use the .yml extension and not .yaml
  • Ensure your code editing application is configured to use spaces (preferably 2 spaces, as per Drupal coding standards), not the tab character when the TAB key is pressed. If you have tab characters in a YAML file within a Drupal environment, a fatal PHP error will be thrown and you'll see a White Screen of Death (WSOD).
  • Copy and paste from an existing YAML file to ensure the formatting is correct, and edit from there.

Additional resources

New tools and workflows

Composer is an essential tool for managing Drupal core and contributed module code for projects. Drupal core uses Composer itself to manage non-Drupal dependencies. Some contributed modules (and more all the time) also use Composer to integrate 3rd-party PHP libraries into Drupal. It's worth understanding more about this tool and how it is used in Drupal projects, as you are likely to encounter it at some point.

More information

Composer is the preferred dependency management solution for PHP, is used by Drupal core, and is becoming increasingly popular for managing the modules and themes used for a Drupal project.

Drush, aka The Drupal Shell, is a command line utility and UNIX scripting interface for Drupal. It allows access to common Drupal features and tasks via the command line. It can help speed up common tasks for Drupal site builders, developers, and DevOps teams. Among other things, it makes it easier to integrate Drupal into CI/CD workflows.

“Drupalize.Me has trained thousands of Drupalistas. Their video lessons help to address our constant need for more Drupal talent. Drupal needs training like this to support its growth.”
Dries Buytaert
Drupal Founder and Project Lead
Photo of Dries Buytaert
“They’re easy to understand. They’re thorough. They’re funny. They’re always entertaining, and it makes it easy to learn parts of Drupal and how you can integrate it into your workflow and learn more and have a good time doing it.”
Roger Carr
Drupalize.Me Member
Photo of Roger Carr
“The mission of the Drupal Association is to foster and support the Drupal software project, the community, and its growth. Drupal education, like that provided by Drupalize.Me, is important to this mission.”
Megan Sanicki
Former Exec. Director, Drupal Assoc.
Photo of Megan Sanicki

FAQs

Am I required to sign a contract?
No. You can purchase a membership and/or cancel any time. Drupalize.Me is a pay-as-you-go service.

Can I preview tutorials before joining?
Yes! Just navigate to our tutorial library. Our free tutorials are labeled with a green "FREE" tag.

Can I watch videos on my mobile device?
Yes! Drupalize.Me is a responsive site and can be accessed in the browser on any mobile device. More FAQs