In this hands-on course a drupal expert with 10 years of experience will give you a deep dive in the power that Drupal core has to offer.

+2400 lines of ready-to-use code snippets
Full project code included
Build a real platform, not just separate tutorials
Suitable for individual training or teams, also for experienced coders from other frameworks
$34.99
Order now

This course will teach you advanced concepts of Drupal 9, Object-oriented PHP and Symfony components.

.... We start with uninstalling the node module 🙈

It struck me that there are so few good learning paths for drupal. With this course I try to fill the gap. I gave it my best and I hope you will enjoy it!

Stef Van Looveren - Senior drupal developer

Table of contents

Please read the table of contents to know what to expect.

Part 1

Drupal developer essentials

  • Composer
    • Basic composer commands
    • Comparing with drupal 7 and earlier
    • Patching with composer
  • Git best practices
  • CLI tools
  • Development & debug
    • Xdebug
    • Webprofiler
  • Configuration management
    • Basic configuration management
    • Creating custom configuration settings
    • Different configuration per environment

Part 2

Project code and set-up

  • Seed data
  • Project set-up

Not in this course

⛔ Please do not buy this course if you are looking specifically for the topics below

  • How to install drupal
  • Server set-up
  • JSON API / Webservices
  • Unit-testing
  • Drupal theming guide

Part 3

Custom entities 101, CRUD operations, workflow states and access

  • Content entities
  • Building our first content entity
  • Securing access of our entities
  • Adding the create/edit/delete forms (CRUD)
  • Views integration of our custom entity to add a listing
  • Getting up-to-speed: making the entity fieldable
    • Media field with library
    • Adding fields to the custom entity via the UI
    • Adding workflows and moderation to custom entities
  • Change entity access based on workflow states
  • Adding views plugins: custom fields and operation links
  • Adding a custom controller for direct publishing
  • Building an overview page 
  • Adding a custom views filter based on moderation state 
  • Optimize the entity teaser with custom variables for twig 
  • Adding css to views 
  • Adding a user-friendly multistep form for entity creation 
  • Add custom actions to the form 
  • Conditional fields in the Form API 
  • Updating our data seeds 

Part 4

Building the application. Storing, validating and rendering data

  • Add dynamic menu links with Menu plugins
  • Building the offer page with twig: theming a custom content entity
  • Adding a dynamic bidding form to our page with an advanced block plugin
  • Adding site-wide css and javascript
  • Adding a code-only bid entity
  • Saving the bid entities on form submission 
  • Form validation based on highest bids
  • Add dynamic variables to our entity teaser 
  • Validating the entity with constraints
  • Displaying all bids in a dynamically rendered table
  • Integrating the core revision system into the bidding process to raise a bid
  • Deleting a bid with a core dialog pop-up

Part 5

Transitions, Events, Caching and user registration

  • User notifications on transition events
  • Update entire view with custom ajax callback
  • OO in practice: deletion of bid and notification entities when an offer gets deleted
  • Caching in-depth
    • Caching of views pages 
    • Caching of custom entity pages
    • Use of cache contexts and cache tags for caching custom blocks
    • Use of cacheable dependencies in render arrays
    • Invalidate cache of another entity after saving
  • Dispatch custom Events with an EventSubscriber to redirect users 
  • Customize the user registration process with a RouteSubscriber
  • Finishing up the platform

Screenshots

You will be building the following software from scratch with drupal 9.
(Not much effort was put in design, because this is not a theming course!)

Changelog

24/06/2020: A typo in the chapter about composer. Downgrading drupal/redirect pointed to a wrong version (8.5 instead 1.5)
29/05/2020: UserLoginSubscriber.php: I added a weight to the getSubscribedEvents() function so the redirect gets a higher priority.
29/05/2020: In the update of the Gin theme the breadcrumbs look a bit different I added some css to the container (lines 60+61)

Stay informed

Subscribe below to stay informed about this and future e-books and courses.

$34.99
Order now
Buy safely on leanpub.com.