Drupal Module Development

Main Content
Duration
2 days
Course Price
$ 900.00
Course Description

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.
Should I Take this Course?

This course is perfect for those who are:

  • programmers unfamiliar with Drupal development
  • Drupal site builders who need to take more control over functionality
  • planning to build a new site in Drupal 8 or 9
  • preparing for delivery of a new Drupal 8 development

Day 1:  Module Development 

  • Drupal module development fundamentals
    • About the Drupal framework
    • The page call process
    • Object oriented programming (OOP)
    • MVC, controllers, and routing
    • Services and the services container
    • Hooks and plugins in Drupal
    • Drupal formatting & coding standards
  • 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
    • RSVP list: module requirements
    • RSVP List: create a form
    • RSVP List: the install file

Day 2:  Module Development 

  • Building a Fully Functional RSVP List Module (continued)
    • RSVP List: Database integration I
    • RSVP List: Permissions
    • RSVP List: Creating the Block
    • RSVP List: Build administrative settings page
    • RSVP List: Reporting results
    • RSVP List: Altering the node form
    • RSVP List: 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 Drupal Console
    • Different tools for differing needs
    • Downloading and installing Drush
    • Using Drush
    • Downloading and Installing Drupal Console
    • Using Drupal Console