Drupal 8 Module Development

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.

Lessons In This Course

Lesson 1: Beginning Drupal 8 Development
Caret Right
  • Introduction
    00:06:29
  • Using the DrupalTutor DevStack
    00:28:42
  • Installing Drupal on the BitWisdom Development Stack
    00:26:00
  • Using the Code Repository for this Class
    00:16:28
  • How Drupal 8 Modules Work
    00:07:52
  • Your First Module for Drupal 8
    00:08:29
  • Blocks: Part 1 - Creating Blocks
    00:25:49
  • Blocks: Part 2 - Adding Dynamic Code
    00:24:03
  • Blocks: Part 3 - Controlling Access and Visibility
    00:24:05
  • Blocks: Part 4 - Creating Configurable Blocks
    00:17:16
  • Routes: Part 1 - Static Routes
    00:23:21
  • Routes: Part 2 - Dynamic Routes with Parameters
    00:35:42
  • Routes: Part 3 - Creating User Permissions
    00:12:03
  • Routes: Part 4 - Implementing Custom Access Control Logic
    00:15:07
  • Routes: Part 5 - Altering Routes from Drupal Core and Contrib
    00:18:10
  • Menu API: Part 1 - Defining Menu Links
    00:18:22
  • Menu API: Part 2 - Defining Local Tasks (Tabs)
    00:15:18
  • Menu API: Part 3 - Defining Action Links
    00:06:32
  • Menu API: Part 4 - Altering Links from Core and Contrib
    00:18:29
  • Services: Part 1 - Using Services with Dependency Injection
    00:23:49
  • Services: Part 2 - Defining Services
    00:27:25
  • Services: Part 3 - Overriding Services at Runtime
    00:13:09
  • Database API: Part 1 - Creating Custom Tables with hook_schema()
    00:14:01
  • Module Lifecycle: Executing Code on Install, Uninstall, and Update
    00:16:57
  • Database API: Part 2 - Static Query API
    00:21:26
  • Database API: Part 3 - Dynamic Query API
    00:30:46
  • Database API: Part 4 - INSERT, UPDATE, and DELETE Queries
    00:09:51
  • Database API: Part 5 - Accessing External Databases
    00:14:35
  • Building Queries for Drupal Entities
    00:25:36
  • Theme System: Part 1 - Using Render Arrays
    00:25:36
  • Theme System: Part 2 - Defining Templates
    00:36:02
  • Theme System: Part 3 - Defining Libraries of CSS and Javascript
    00:18:02
  • Form API: Part 1 - Creating Forms
    00:22:00
  • Form API: Part 2 - Validation and Submission Handling
    00:16:36
  • Form API: Part 3 - Form Element Types
    00:48:45
  • Putting it All Together - Completing the Zoo Management Module
    00:33:32
  • Form API: Part 4 - Altering Forms from Core and Contrib
    00:15:45
  • Configuration API: Part 1 - Saving and Retrieving Configuration Values
    00:32:15
  • Configuration API: Part 2 - Providing Default Configuration
    00:10:58
  • Configuration API: Part 3 - Configuration Schema
    00:09:41
  • State API: Storing and Retrieving Runtime Values
    00:10:31
  • Cache Metadata: Part 1 - Cache Tags, Context, and Max Age
    01:00:25
  • Cache Metadata: Part 2 - Custom Cache Tags and Invalidating Them
    00:19:08
  • Class Wrap-up
    00:02:19
  • An Overview of Local Development Environments
    00:01:50
  • Using Lando as a Local Development Environment
    00:39:00
  • Using DDev as a Local Development Environment
    00:28:36
  • Using DrupalVM as a Local Development Environment
    00:30:38

See It In Action

Watch this sample video to get a sense of what this course is like.

Watch Example Video

Wayne Eaker
Wayne Eaker
Drupal Architect, Developer, and Trainer

About Your Instructor

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.

What People Are Saying

Students love the Drupal 8 Module Development class.

“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

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

“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 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

“Wayne is a great teacher. He sounds passionate about Drupal and doesn't limit his courses to a single method of doing things. He always teaches every possible way. I really enjoyed the course and one important detail is that you get access to the videos forever which is nice if you want to go back to something.”

Roberto
Jr. Developer

I have been a Drupal developer since version 6, and whilst I had dabbled in version 8 I was finding it a steep learning curve with all the coding changes and new file structures. This course gave me the much needed boost I needed to finally feel at ease with the prospect of migrating the dozens of custom modules I have built to Drupal 8 for my main client. Thanks Wayne!

Paul B
Freelance web developer
Handshake

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.

$ 398
Per student
  • 16+ hours of video lessons
  • 4 weekly live webinars with your instructor
  • Permanent access to the recordings of all the lessons and live sessions
  • A development environment for your practice Drupal site
  • Access to an online forum to ask questions of the instructor and discuss with other students
?

Your Class Session Details

Lesson Videos

Your lesson videos will be available starting May 27, 2020. You can start and stop the videos at your convenience, and use them as a reference forever!

Your lesson videos will be available starting June 10, 2020. You can start and stop the videos at your convenience, and use them as a reference forever!

Your lesson videos will be available starting June 24, 2020. You can start and stop the videos at your convenience, and use them as a reference forever!

Your lesson videos will be available starting July 8, 2020. You can start and stop the videos at your convenience, and use them as a reference forever!

Your lesson videos will be available starting July 22, 2020. You can start and stop the videos at your convenience, and use them as a reference forever!

Your lesson videos will be available starting August 5, 2020. You can start and stop the videos at your convenience, and use them as a reference forever!

Your lesson videos will be available starting August 19, 2020. You can start and stop the videos at your convenience, and use them as a reference forever!

Your lesson videos will be available starting September 2, 2020. You can start and stop the videos at your convenience, and use them as a reference forever!

Development Environment

Your practice development environment will be available from May 27, 2020 to July 8, 2020.

Your practice development environment will be available from June 10, 2020 to July 22, 2020.

Your practice development environment will be available from June 24, 2020 to August 5, 2020.

Your practice development environment will be available from July 8, 2020 to August 19, 2020.

Your practice development environment will be available from July 22, 2020 to September 2, 2020.

Your practice development environment will be available from August 5, 2020 to September 16, 2020.

Your practice development environment will be available from August 19, 2020 to September 30, 2020.

Your practice development environment will be available from September 2, 2020 to October 14, 2020.

Live Webinars

Webinars for this session are scheduled at the dates and times below. Don't worry. These webinars are strictly for questions and troubleshooting. They are not required to cover the lesson material, and you are not expected to attend them all. These webinars will also be recorded, so if you can't attend a webinar due to your time zone or other conflicts, you can submit your questions ahead of time and watch the answers on the recording.

Webinar Schedule
Date Time(s)
June 2 11:00am-12:00pm & 4:00pm-5:00pm EDT
June 9 11:00am-12:00pm & 4:00pm-5:00pm EDT
June 16 11:00am-12:00pm & 4:00pm-5:00pm EDT
June 23 11:00am-12:00pm & 4:00pm-5:00pm EDT
Date Time(s)
June 16 11:00am-12:00pm & 4:00pm-5:00pm EDT
June 23 11:00am-12:00pm & 4:00pm-5:00pm EDT
June 30 11:00am-12:00pm & 4:00pm-5:00pm EDT
July 7 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
June 30 11:00am-12:00pm & 4:00pm-5:00pm EDT
July 7 10:00am-11:00am & 4:00pm-5:00pm EDT
July 13 10:00am-11:00am & 4:00pm-5:00pm EDT
July 20 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
July 13 10:00am-11:00am & 4:00pm-5:00pm EDT
July 20 10:00am-11:00am & 4:00pm-5:00pm EDT
July 28 10:00am-11:00am & 4:00pm-5:00pm EDT
August 4 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
July 28 10:00am-11:00am & 4:00pm-5:00pm EDT
August 4 10:00am-11:00am & 4:00pm-5:00pm EDT
August 11 10:00am-11:00am & 4:00pm-5:00pm EDT
August 18 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
August 11 10:00am-11:00am & 4:00pm-5:00pm EDT
August 18 10:00am-11:00am & 4:00pm-5:00pm EDT
August 25 10:00am-11:00am & 4:00pm-5:00pm EDT
September 1 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
August 25 10:00am-11:00am & 4:00pm-5:00pm EDT
September 1 10:00am-11:00am & 4:00pm-5:00pm EDT
September 8 10:00am-11:00am & 4:00pm-5:00pm EDT
September 15 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
September 8 10:00am-11:00am & 4:00pm-5:00pm EDT
September 15 10:00am-11:00am & 4:00pm-5:00pm EDT
September 22 10:00am-11:00am & 4:00pm-5:00pm EDT
September 29 10:00am-11:00am & 4:00pm-5:00pm EDT