Drupal Developer Immersion
Interested in a Drupal deep dive? Is a Drupal migration in your near future? This five-day course is designed as an introductory overview of Drupal development. Topics covered can also provide essential perspectives and guidance for current Drupal developers who are looking to make the leap to the latest version of Drupal from older versions.
Key concepts are introduced step-by-step and reinforced with practice and opportunities for hands-on engagement, as course participants are guided through the building of multiple sites, custom themes, and custom modules. Techniques and best practices for developing custom functionality to extend the capabilities of Drupal are also covered.
Days 1-2 focus on site building, layout and theming is covered on Day 3, and the final Days 4-5 are devoted to module development.
Each segment of the course is offered as a separate unit for developers who are not looking for the full immersion experience at this point.
Learning Objectives
- Knowledge of Drupal full-stack development
- An essential framework of steps involved in delivering a new Drupal website
- The expertise and agility to meet a wide range of client or company website expectations
- Knowledge of advanced techniques and best practices for custom functionality to extend the capabilities of Drupal
Course Outline
Day 1: Site Building
- Basic Web essentials
- Setting up a local environment
- Getting started
- What is Drupal?
- What’s distinct about Drupal
- What are the distinguishing features of Drupal?
- Important Drupal terminology
- Drupal administration toolbar
- Content types and content modeling
- Structured content types
- Custom content types and fields
- How to categorize content with taxonomy
- Understanding content workflows
- User roles and permissions
- Creating roles and assigning permissions
- Account registration settings
- The authenticated user registration form
- Creating a content editor account via administrator
Day 2: Site Building
- Building what appears on the page
- Page layouts with blocks
- Custom blocks
- Building dynamic lists of content with views
- Views displays
- Custom URL aliases
- Configuration synchronization
- Building complex views
- Contextual filters
- Relationships
- Exposing filter options to visitors
- Creating a view that returns a list of content in JSON
- Fielding entities and managing displays
- Review adding fields to a content type
- Adding fields to a content type
- Adding fields to a taxonomy term
- Adding fields to block types
- Review display modes
- Images and display
- drupal.org and extending Drupal
- drupal.org community resources
- Extending Drupal with modules
- Using themes
Day 3: Layout & Theming
- Drupal Theming Fundamentals
- How does Drupal theming work?
- What are themes?
- Making a simple theme
- Working with regions
- Adding libraries and dependencies
- Advanced .info.yml options
- Adding breakpoints
- Customizing your theme
- Anatomy of a theme
- Coding standards in Drupal
- Introduction to Twig template files
- Overrides, available variables, and hooks
- Adding custom regions
- Breadcrumbs
- Base themes and subtheming
- Base themes, subthemes, and core themes
- Using subthemes
- File inheritance
Day 4: 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 5: 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
Recommended Experience
Experience with the following is helpful but not required:
- Content authoring using a Content Management System
- Drupal's administrative interface
- HTML and CSS
Should I Take this Course?
The knowledge and know-how gained in this course is particularly helpful for:
- Developers who are interested in learning the basics of developing a new Drupal website
- Internal development teams who are preparing to migrate to a Drupal website
- Developers who are planning to build a new Drupal website
- Developers who are newly responsible for supporting a Drupal website
- Current Drupal Developers who are looking to firm up Acquia best practice knowledge for Drupal Developer Certification