La implementación de un enlace realizado desde un módulo es una función cuyo nombre tiene el prefijo del nombre corto del módulo (también llamado el nombre de la máquina ); del nombre del gancho, retire la parte del gancho y reemplácela con el nombre de la máquina del módulo. Por ejemplo, la implementación de hook_menu()
done from example.module es example_menu()
. Si el módulo es example_menu.module, y la función es example_menu()
, eso no se considera la hook_menu()
implementación para example_menu.module.
Esto también significa, por ejemplo, que la hook_form_alter()
implementación en example_form.module no es example_form_alter()
, pero example_form_form_alter()
. Como otro ejemplo, la implementación de hook_form_FORM_ID_alter()
done para alterar el formulario devuelto user_register_form()
por example.module no lo es example_form_user_register_alter()
, peroexample_form_user_register_form_alter()
. (El ID del formulario es user_register_form ).
En términos generales, el uso de caracteres en mayúscula en el nombre de la máquina del módulo no crea problemas: PHP no hace diferencias entre myModule_get_value()
, y mymodule_get_value()
, $value = myModule_get_value()
llamaría myModule_get_value()
, o mymodule_get_value()
.
Sin embargo, hay un caso en el que el uso de caracteres en mayúscula en el nombre de la máquina de un módulo podría causar problemas: al definir los enlaces de actualización para un módulo. drupal_get_schema_versions()
, la función que devuelve una lista de actualizaciones disponibles, contiene el siguiente código.
// Prepare regular expression to match all possible defined hook_update_N().
$regexp = '/^(?P<module>.+)_update_(?P<version>\d+)$/';
$functions = get_defined_functions();
// Narrow this down to functions ending with an integer, since all
// hook_update_N() functions end this way, and there are other
// possible functions which match '_update_'. We use preg_grep() here
// instead of foreaching through all defined functions, since the loop
// through all PHP functions can take significant page execution time
// and this function is called on every administrative page via
// system_requirements().
foreach (preg_grep('/_\d+$/', $functions['user']) as $function) {
// If this function is a module update function, add it to the list of
// module updates.
if (preg_match($regexp, $function, $matches)) {
$updates[$matches['module']][] = $matches['version'];
}
}
La última línea ejecutada desde drupal_get_schema_versions()
es la siguiente.
return empty($updates[$module]) ? FALSE : $updates[$module];
Si el nombre del módulo es myModule.module, drupal_get_schema_versions('myModule')
devolverá solo las funciones con un nombre que comienza con myModule_update y termina con un número; funciones como mymodule_update_7120()
no se incluirán porque la expresión regular utilizada drupal_get_schema_versions()
es sensible a mayúsculas y minúsculas. Esto todavía se aplica a Drupal 8, ya que la expresión regular sigue siendo la misma que se usa en Drupal 7.