Overview: Drush Hooks for Drupal 8, Drupal 9

Last updated November 1, 2021

If you want to change the way an existing Drush command works you use hooks. Hooks are useful for altering command parameters, options, annotation data, and adding custom logic during particular stages of the command execution process. Drush hooks are conceptually similar to Drupal hooks.

Hooks are methods on a Drush command class with an annotation indicating what hook is being implemented, and thus when the code should be invoked. The code in the methods is executed during specific stages of the command cycle. Developers can use core hooks -- predefined methods that come with Drush core -- or declare a custom hook that other commands can use.

In this tutorial we'll:

  • Explore the different core Drush hooks
  • Learn which hooks are called at what stage of the command cycle
  • View example hook annotations and method implementations

By the end of this tutorial you'll know what types of core hooks are available to you and when they are called.