This 2-day class provides a comprehensive introduction to the essential skills necessary for creating and modifying the functionality of Drupal 8 websites. The student will build multiple custom modules during the course for a comprehensive hands-on understanding of Module Development best practices.
Course Outline
Module Development Day 1
- 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
Module Development Day 2
- 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
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
- preparing for delivery of a new Drupal development
- looking to firm up Acquia best practice knowledge for Drupal Certification
Recommended Experience
Having a basic understanding of the following technologies is helpful, but not required:
- Authoring content using a Content Management system
- Experience with Drupal's administrative interface
- Some HTML, CSS knowledge
- Experience with PHP or other C based programming languages