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

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
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 January 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 February 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 February 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 March 4, 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 March 18, 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 April 1, 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 April 15, 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 April 29, 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 May 13, 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 May 27, 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 January 22, 2020 to March 4, 2020.

Your practice development environment will be available from February 5, 2020 to March 18, 2020.

Your practice development environment will be available from February 19, 2020 to April 1, 2020.

Your practice development environment will be available from March 4, 2020 to April 15, 2020.

Your practice development environment will be available from March 18, 2020 to April 29, 2020.

Your practice development environment will be available from April 1, 2020 to May 13, 2020.

Your practice development environment will be available from April 15, 2020 to May 27, 2020.

Your practice development environment will be available from April 29, 2020 to June 10, 2020.

Your practice development environment will be available from May 13, 2020 to June 24, 2020.

Your practice development environment will be available from May 27, 2020 to July 8, 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)
January 28 11:00am-12:00pm & 4:00pm-5:00pm EST
February 4 11:00am-12:00pm & 4:00pm-5:00pm EST
February 11 11:00am-12:00pm & 4:00pm-5:00pm EST
February 18 11:00am-12:00pm & 4:00pm-5:00pm EST
Date Time(s)
February 11 11:00am-12:00pm & 4:00pm-5:00pm EST
February 18 11:00am-12:00pm & 4:00pm-5:00pm EST
February 26 11:00am-12:00pm & 4:00pm-5:00pm EST
March 3 11:00am-12:00pm & 4:00pm-5:00pm EST
Date Time(s)
February 26 11:00am-12:00pm & 4:00pm-5:00pm EST
March 3 11:00am-12:00pm & 4:00pm-5:00pm EST
March 10 11:00am-12:00pm & 4:00pm-5:00pm EDT
March 17 11:00am-12:00pm & 4:00pm-5:00pm EDT
Date Time(s)
March 10 11:00am-12:00pm & 4:00pm-5:00pm EDT
March 17 11:00am-12:00pm & 4:00pm-5:00pm EDT
March 24 11:00am-12:00pm & 4:00pm-5:00pm EDT
March 31 11:00am-12:00pm & 4:00pm-5:00pm EDT
Date Time(s)
March 24 11:00am-12:00pm & 4:00pm-5:00pm EDT
March 31 11:00am-12:00pm & 4:00pm-5:00pm EDT
April 7 11:00am-12:00pm & 4:00pm-5:00pm EDT
April 14 11:00am-12:00pm & 4:00pm-5:00pm EDT
Date Time(s)
April 7 11:00am-12:00pm & 4:00pm-5:00pm EDT
April 14 11:00am-12:00pm & 4:00pm-5:00pm EDT
April 21 11:00am-12:00pm & 4:00pm-5:00pm EDT
April 28 11:00am-12:00pm & 4:00pm-5:00pm EDT
Date Time(s)
April 21 11:00am-12:00pm & 4:00pm-5:00pm EDT
April 28 11:00am-12:00pm & 4:00pm-5:00pm EDT
May 5 11:00am-12:00pm & 4:00pm-5:00pm EDT
May 11 11:00am-12:00pm & 4:00pm-5:00pm EDT
Date Time(s)
May 5 11:00am-12:00pm & 4:00pm-5:00pm EDT
May 11 11:00am-12:00pm & 4:00pm-5:00pm EDT
May 15 11:00am-12:00pm & 4:00pm-5:00pm EDT
May 26 11:00am-12:00pm & 4:00pm-5:00pm EDT
Date Time(s)
May 15 11:00am-12:00pm & 4:00pm-5:00pm EDT
May 26 11:00am-12:00pm & 4:00pm-5:00pm EDT
June 2 11:00am-12:00pm & 4:00pm-5:00pm EDT
June 9 11:00am-12:00pm & 4:00pm-5:00pm EDT
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