HTML and CSS
TopicHTML and CSS are the foundational languages for how browsers display web pages.
JavaScript
TopicJavaScript (JS) is an interpreted programming language that is widely used on the web to control web page behavior and interactivity.
Symfony
TopicSymfony is a set of reusable PHP components, and a framework for building PHP applications. Drupal makes use of various Symfony components.
YAML
TopicYAML, 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.
Performance and scalability determine how fast your application can serve a page and to how many users at a time.
Events
TopicEvents are one of the ways that module developers can alter or extend Drupal without modifying existing code.
Xdebug
TopicDebugging your Drupal codebase can be made substantially easier by learning how to enable and configure the Xdebug PHP extension.
Caching in Drupal
TopicCaching in Drupal is controlled by Drupal's Cache API which is used to store any type of data on a permanent or temporary basis. Some types of data tend to take a long time to compute, but utilizing the Cache API in your module can help your site load data more quickly.
Learn about resources to guide you through the process of updating a module or theme to the latest version of Drupal.
In Drupal’s core library there are a number of utility functions and classes that, as a module developer, you will find make your task easier or less tedious.
Plugins (Plugin API)
TopicPlugins are one of the ways that module developers can write code that extends Drupal. The Drupal Plugin API allows a module to provide functionality in an extensible, object-oriented way.
Upgrading is the process of moving your site from a previous major version of Drupal to a newer version, for example from Drupal 7 to Drupal 8 or Drupal 9 to Drupal 10.
The Migrate API can be used to import content from an older Drupal site (Drupal 7 or older), or any other data source, into the current version of Drupal.
The Render API consists of a standard format for describing data using structured arrays and a process for converting those arrays into the HTML a user sees when interacting with a Drupal site.
Drupal Core Modules
TopicA module is a set of PHP, JavaScript, and/or CSS files that extends site features and adds functionality. The Drupal core software comes with a set of modules that provide a range of features.
Drupal's Entity API
CourseDrupal Module Development
CourseThis tutorial is for PHP developers—including Drupal 7 developers—who want to get a local development environment up and running for Drupal 8 development work. In this tutorial, we will install Drupal 8, fire up the built-in PHP web server, set some variables in php.ini, initialize a Git repository, and discuss how Composer will impact what you commit to Git now and in the future. Finally, we'll walk through how to configure PhpStorm for Symfony development that plays nicely with Drupal 8 projects as well.
Additional resources
Development Environments
Local Development Guide (drupal.org)
PhpStorm
The Wonderful World of Composer — Drupalize.Me
PHP's Built-in web server (manual) — php.net
In this tutorial, we'll create a new module and create a route and controller for it. Remember hook_menu
? Well, hook_menu
is out and routes and controllers are in! If the YAML files in this lesson piqued your interest, check out our introduction to YAML tutorial to learn more.
Note: See Create an Info File for a Module for up-to-date instructions on info file requirements, which have changed since this video was recorded.
Additional resources
Create an Info File for a Module
An Introduction to YAML — Drupalize.Me
PHP Namespaces in 120 seconds
Clear Drupal's Cache