Frage

I have a couple of questions on Drupal coding conventions that I haven't been able to gleam from the docs or the code.

Outside of knowing the name of every hook in Drupal, is there a way to differentiate a function that implements a hook from a function that's just providing a bit of functionality for a hook? Either something enforced via code or some convention?

Second, possibly related question. After reviewing the core modules, I've noticed that some functions are named with a leading underscore

function _node_rankings(SelectQueryExtender $query) {
    ...
}

What meaning is attached to the underscore? My assumption it's mimicking a "protected" convention, meaning that it should only be called from other functions in the node.module file; however, I couldn't find anything to confirm this.

I know about the Coding Standards, but they seem aimed at general PHP syntax, not conventions aimed at Drupal's internal systems.

War es hilfreich?

Lösung

In answer to your first question, if you look at the code of most modules, the comments above hook implementations will typically say:

/**
 * Implementation of hook_foo().
 */

After working with Drupal a while, you'll start to recognize the most common hooks.

Andere Tipps

You're right, the underscore prefix in function names indicates that it should be treated as a private function, only being called by the module that declared it.

I don't know if this is in Drupal's official docs, but there are some posts on drupal.org confirming this (like this or this).

EDIT: and yes, it also works to avoid turning a "normal" function into a hook implementation (although you should try to not name functions after existing hooks).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top