Handlers

The last main group of settings found on the entity type plugin annotations are the handlers. Handlers are the objects used by the entity API to manage various tasks related to entities. The Node entity type is a good example to look at because it defines quite a lot of them, giving us an opportunity to learn:

*   handlers = { 
*     "storage" = "Drupal\node\NodeStorage", 
*     "storage_schema" = "Drupal\node\NodeStorageSchema", 
*     "view_builder" = "Drupal\node\NodeViewBuilder", 
*     "access" = "Drupal\node\NodeAccessControlHandler", 
*     "views_data" = "Drupal\node\NodeViewsData", 
*     "form" = { 
*       "default" = "Drupal\node\NodeForm", 
*       "delete" = "Drupal\node\Form\NodeDeleteForm", 
*       "edit" = "Drupal\node\NodeForm", 
*       "delete-multiple-confirm" = "Drupal\node\Form\DeleteMultiple" 
*     }, 
*     "route_provider" = { 
*       "html" = "Drupal\node\Entity\NodeRouteProvider", 
*     }, 
*     "list_builder" = "Drupal\node\NodeListBuilder", 
*     "translation" = "Drupal\node\NodeTranslationHandler" 
*   }, 

As we can immediately notice, these are all simple references to classes. So, when in doubt, it's always a good idea to go and see what they do and how they work. But let's briefly talk about all of them and see what their main responsibility is.