diff --git a/coder_sniffer/Drupal/Sniffs/NamingConventions/ValidFunctionNameSniff.php b/coder_sniffer/Drupal/Sniffs/NamingConventions/ValidFunctionNameSniff.php index 8392215..2f3aa75 100644 --- a/coder_sniffer/Drupal/Sniffs/NamingConventions/ValidFunctionNameSniff.php +++ b/coder_sniffer/Drupal/Sniffs/NamingConventions/ValidFunctionNameSniff.php @@ -98,6 +98,13 @@ class Drupal_Sniffs_NamingConventions_ValidFunctionNameSniff extends Generic_Sni return; } + $isApiFile = substr($phpcsFile->getFilename(), -8) === '.api.php'; + $isHookExample = substr($functionName, 0, 5) === 'hook_'; + if ($isApiFile && $isHookExample) { + // Ignore hook_ENTITY_TYPE_insert() functions in .api.php files. + return; + } + if ($functionName !== strtolower($functionName)) { $expected = strtolower(preg_replace('/([^_])([A-Z])/', '$1_$2', $functionName)); $error = 'Invalid function name, expected %s but found %s'; diff --git a/coder_sniffer/Drupal/Test/good/good.api.php b/coder_sniffer/Drupal/Test/good/good.api.php index 5a616e8..765434b 100644 --- a/coder_sniffer/Drupal/Test/good/good.api.php +++ b/coder_sniffer/Drupal/Test/good/good.api.php @@ -124,5 +124,20 @@ function hook_locale_translation_projects_alter(array &$projects) { } /** + * Act on entities of a specific type when loaded. + * + * @param array $entities + * The entities keyed by entity ID. + * + * @ingroup entity_crud + * @see hook_entity_load() + */ +function hook_ENTITY_TYPE_load($entities) { + foreach ($entities as $entity) { + $entity->foo = mymodule_add_something($entity); + } +} + +/** * @} End of "addtogroup hooks". */