• Course Overview
  • Testimonials
Course Overview

In this course, you will learn to build your own custom modules for Drupal. Covering the Drupal 8 core API, you'll discover the most commonly-used Drupal hooks, services, and functions and find out how to use Drupal's documentation to learn about the rest. You'll develop several modules step-by-step, while following best practices to ensure maintainability and interoperability with other modules. This course is taught by a practicing Drupal developer and will take a pragmatic approach to development based on real-world experience.

Who is it for?

This course is for anyone who wants to create their own Drupal modules. It targeted a web developers, system integrators, and anyone who want to tweak Drupal's behavior to meet their needs.

Pre-requisites: This course was designed for those who have experience with Drupal site building and knowledge of PHP. Students without PHP experience should consider taking our PHP Bootcamp for Drupal 8 class. Those without Drupal experience should take Building Websites with Drupal 8

How is it taught?

The class will consist of four weekly video lessons, each around 3.5 - 4 hours long, and four weekly live Q&A sessions with the instructor. The lessons will cover the topics listed below and can be watched on-demand, anytime that is convenient for you. At the end of each lesson, you will be given an assignment to practice what you've learned. (We will provide web hosting for your practice work, so you don't need to worry about setting that up.)

The weekly live sessions will be conducted online, using the webinar software GotoMeeting. During the sessions, the instructor will answer all your questions from and will help troubleshoot any issues you have doing the assignment. (GotoMeeting allows us to view your computer, and take control of your keyboard and mouse if needed. So, we can see any error messages that you're seeing and figure out how to fix it right on the spot.) In addition to the live sessions, you will have access to an online forum to discuss assignments with other students and ask the instructor questions during the week.

After the course is over you can continue to access the lesson videos, free of charge, forever. There are no monthly subscription fees. Just come back and watch the lessons whenever you want. They are a great reference when you forget how to do something.

Want to see how it works?
View a Sample Lesson Video
Our Guarantee
Try this course for a week, and if you don't agree that it's the best way to learn Drupal, we'll refund the full price. No questions asked.

Topics Covered in This Course

Drupal Module Basics

  • Module programming fundamentals
  • Drupal code standards
  • Creating custom-programmed Drupal blocks
  • Implementing custom block access
  • Creating configurable blocks

Routes, Menu Links, and Services

  • Creating static and dynamic menu routes to map URLs to your custom page code
  • Adding and enforcing permissions and custom access callbacks
  • Defining menu links, local tasks (tabs), and action links
  • Altering routes and menu links from Drupal core and contributed modules
  • Using services with dependency injection
  • Creating your own services
  • Overriding and replacing services at runtime

The Database API

  • The module lifecycle: install, uninstall, update
  • Creating tables on module install: The Schema API
  • The static query API
  • The dynamic query API
  • Accessing external databases from Drupal
  • Using EntityQuery to query Drupal entities like nodes, users, comments, etc.

The Theme API

  • Using render arrays
  • Defining your own templates with Twig
  • Defining libraries of CSS and Javascript

The Drupal Form API

  • Creating forms in Drupal
  • Form validation and processing
  • Changing forms created by other modules

The Configuration and State APIs

  • Storing and retrieving configuration values
  • Providing default configuration with your module
  • Configuration schema
  • Storing runtime values with the State API

The Cache Metadata API

  • Using cache metadata to specify invalidation rules for cached render arrays
  • Understanding cache tags, max age, and cache contexts
  • Creating custom cache tags, and how to invalidated tagged caches


Wayne Eaker is the director and chief developer of Zengenuity. He's a Drupal expert with years of experience building highly-customized Drupal websites. He is also a seasoned trainer, having taught professionals, corporate clients and high school computer science students.


The cost for this course is $399. This includes:

  • 16+ hours of video lessons and 4 weekly live sessions with your instruction.
  • Permanent access to the recordings of the lessons and live session labs. Watch them again anytime you need them!
  • A web hosting account for your practice Drupal site and custom modules.
  • Access to an online forum to ask questions of the instructor and discuss with other students.

Upcoming Sessions

Lesson videos for all courses are available on-demand at any time once your session begins. Live question and answer webinars are scheduled as listed below.

Not sure which session to pick? Don't worry! You can always reschedule your class if you decide you need to take it at a later date.

Class Dates
October 10 - November 7, 2018
View Live Q&A Webinar Schedule
October 24 - November 21, 2018
View Live Q&A Webinar Schedule
November 7 - December 6, 2018
View Live Q&A Webinar Schedule
January 9 - February 7, 2019
View Live Q&A Webinar Schedule
January 23 - February 21, 2019
View Live Q&A Webinar Schedule
February 6 - March 7, 2019
View Live Q&A Webinar Schedule
February 20 - March 21, 2019
View Live Q&A Webinar Schedule
March 6 - April 4, 2019
View Live Q&A Webinar Schedule
March 20 - April 18, 2019
View Live Q&A Webinar Schedule
This has been the best on-line Drupal training course that I have done so far. My personal highlight were the lessons on dependency injection, probably the best explanation of this important concept that I have seen.
Gary - Drupal Developer
I am a web developer in an IT company, and I've built several websites with Drupal 7. However, since I learned Drupal by myself, I always had the feeling that there was an easier way to do things. I stuck to creating pages and components from the admin panel and then modifying them (as I could) with the few hook functions that I knew or Javascript (do not do that! eheh). Since now Drupal 8 is out and starting to be widely used, I didn't want to repeat the same error, and I preferred to take a structured course about what Drupal actually offers concerning built-in features. With this course I discovered the routing system, the links system, the benefits of placeholders, the cache system, how to correctly use hook functions, the differences among the several standard file names, and many other tips. Last but not least, I really have to say that the teacher Wayne is great: He explains everything in a very detailed way, with a simple language, and slowly.
Ebrisa - Software and web developer
This class was by far the most beneficial Drupal 8 learning experience. I am very excited to be able to use the new concepts that were taught in my future development projects.
Dustin - Drupal Hobbyist
Learning Drupal technology is like climbing a tall range of mountains. Without a good guide, you're probably going to tumble down in the valleys below. Wayne helps you reach those peaks by organising his courses in a logical order and presenting the material through practical scenarios.
Ivan Pellegrin - Data and Analytics Consultant