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 August 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 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!

Your lesson videos will be available starting September 16, 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 30, 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 October 14, 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 October 28, 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 November 11, 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 August 10, 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.

Your practice development environment will be available from September 16, 2020 to October 28, 2020.

Your practice development environment will be available from September 30, 2020 to November 11, 2020.

Your practice development environment will be available from October 14, 2020 to November 25, 2020.

Your practice development environment will be available from October 28, 2020 to December 9, 2020.

Your practice development environment will be available from November 11, 2020 to December 23, 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)
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
Date Time(s)
September 22 10:00am-11:00am & 4:00pm-5:00pm EDT
September 29 10:00am-11:00am & 4:00pm-5:00pm EDT
October 6 10:00am-11:00am & 4:00pm-5:00pm EDT
October 13 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
October 6 10:00am-11:00am & 4:00pm-5:00pm EDT
October 13 10:00am-11:00am & 4:00pm-5:00pm EDT
October 20 10:00am-11:00am & 4:00pm-5:00pm EDT
October 27 10:00am-11:00am & 4:00pm-5:00pm EDT
Date Time(s)
October 20 10:00am-11:00am & 4:00pm-5:00pm EDT
October 27 10:00am-11:00am & 4:00pm-5:00pm EDT
November 3 10:00am-11:00am & 4:00pm-5:00pm EST
November 10 10:00am-11:00am & 4:00pm-5:00pm EST
Date Time(s)
November 3 10:00am-11:00am & 4:00pm-5:00pm EST
November 10 10:00am-11:00am & 4:00pm-5:00pm EST
November 17 10:00am-11:00am & 4:00pm-5:00pm EST
November 24 10:00am-11:00am & 4:00pm-5:00pm EST
Date Time(s)
November 17 10:00am-11:00am & 4:00pm-5:00pm EST
November 24 10:00am-11:00am & 4:00pm-5:00pm EST
December 1 10:00am-11:00am & 4:00pm-5:00pm EST
December 8 10:00am-11:00am & 4:00pm-5:00pm EST