Home » Php » Drupal: Are hook_ functions in *.api.php ever called?

Drupal: Are hook_ functions in *.api.php ever called?

Posted by: admin July 12, 2020 Leave a comment

Questions:

In Drupal 7, every core module has a *.api.php file, where * is the name of the module. For example

modules/node/node.api.php
modules/path/path.api.php

What are these files for? They contain functions that start with hook_, and the name of a hook that (I think) the module invokes. For example

modules/system/system.api

has

function hook_entity_view($entity, $type, $view_mode, $langcode) {
  $entity->content['my_additional_field'] = array(
    '#markup' => $additional_field,
    '#weight' => 10,
    '#theme' => 'mymodule_my_additional_field',
  );
}

There’s an entity_view hook that’s invoked by the system which you may implement in your own modules, but (it doesn’t appear) that hook_entity_view is ever called.

What are these function for. Are they ever called by the system? If so, when? If not, why are they there?

How to&Answers:

Nope, it’s just documentation files that describe hooks by modules.
About hook_entity_view: you can add it in custom module: YOURMODULENAME_entity_view(…).