Drupal 8 Module Development

Learn to build your own custom modules for Drupal

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

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

Lesson 2: Routes, Menu Links, and Services

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

Lesson 3: Querying the Database and Theming the Results

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

Lesson 4: Forms, Configuration, and Caching

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

Appendix: Using Local Development Environments

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 April 14, 2021. You can start and stop the videos at your convenience, and use them as a reference forever!

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

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

Your lesson videos will be available starting May 26, 2021. 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 9, 2021. 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 23, 2021. 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 7, 2021. 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 April 14, 2021 to May 26, 2021.

Your practice development environment will be available from April 28, 2021 to June 9, 2021.

Your practice development environment will be available from May 12, 2021 to June 23, 2021.

Your practice development environment will be available from May 26, 2021 to July 7, 2021.

Your practice development environment will be available from June 9, 2021 to July 21, 2021.

Your practice development environment will be available from June 23, 2021 to August 4, 2021.

Your practice development environment will be available from July 7, 2021 to August 18, 2021.

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)
April 20 10:00am-11:00am & 4:00pm-5:00pm EDT
April 27 10:00am-11:00am & 4:00pm-5:00pm EDT
May 4 10:00am-11:00am & 4:00pm-5:00pm EDT
May 11 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
May 4 10:00am-11:00am & 4:00pm-5:00pm EDT
May 11 10:00am-11:00am & 4:00pm-5:00pm EDT
May 18 10:00am-11:00am & 4:00pm-5:00pm EDT
May 25 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
May 18 10:00am-11:00am & 4:00pm-5:00pm EDT
May 25 10:00am-11:00am & 4:00pm-5:00pm EDT
June 1 10:00am-11:00am & 4:00pm-5:00pm EDT
June 8 10:30am-11:30am & 4:00pm-5:00pm EDT
Date Time(s)
June 1 10:00am-11:00am & 4:00pm-5:00pm EDT
June 8 10:30am-11:30am & 4:00pm-5:00pm EDT
June 15 10:00am-11:00am & 4:00pm-5:00pm EDT
June 22 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
June 15 10:00am-11:00am & 4:00pm-5:00pm EDT
June 22 10:00am-11:00am & 4:00pm-5:00pm EDT
June 29 10:00am-11:00am & 4:00pm-5:00pm EDT
July 6 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
June 29 10:00am-11:00am & 4:00pm-5:00pm EDT
July 6 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 27 10:00am-11:00am & 4:00pm-5:00pm EDT
August 3 10:00am-11:00am & 4:00pm-5:00pm EDT