Actions Panel
Drupal Module Development (2 Days)
Learn the fundamentals of Drupal 9 module development.
When and where
Date and time
Location
Online
Refund Policy
About this event
This two-day hands-on course introduces students to concepts and practices for extending the functionality of Drupal’s core and contributed modules through custom module development. Participants are required to have prior experience with Drupal site building and an understanding of basic programming concepts or should have previously completed the Introduction to Drupal and Site Building courses.
Learning Objectives
- Describe Drupal's hook system and increasingly object-based development architecture
- Articulate the construction of Drupal modules
- Insert and extract data using Drupal's core database abstraction layer.
- Employ and articulate best practices, conventions and coding standards.
Target Experience Level
This two-day course is for experienced Drupal site builders ready to take the next step to build custom functionality in a website and PHP or other programmers new to Drupal development.
Course Outline
Drupal Module Development Fundamentals
- About the Drupal Framework
- The Page Call Process
- Object Oriented Programming
- MVC, Controllers, and Routing
- Services and the Service Container
- Hooks and Plugins in Drupal
Creating Your First Module
- Module Naming, Location, & Basic Requirements
- Create mymodule
- Implementing a Hook in MyModule
- Add Pages and Menu Items
Building a Fully Functional RSVP List Module
- Module Requirements
- Create a Form
- The Install File
- Database Integration I
- Permissions
- Create the Block
- Build Administrative Settings Page
- Reporting Results
- Altering the Node Edit Form
- Database Integration II
Automated Testing
- About the Simpletest Module
- Writing Functional Tests with Simpletest
- About PHPUnit
- Writing Unit Tests for Classes with PHPUnit
- Drush and Drush Console
- Different Tools for Differing Needs
- Downloading and Installing Drush
- Using Drush
- Downloading and Installing Drupal Console
- Using Drupal Console
How Would You Do That in Drupal?
- Real-Life Design Considerations