Comment corriger «Les implémentations de hook ne doivent pas dupliquer la documentation @param.»?

10

J'utilise PhpStorm pour expérimenter avec le nettoyage de mon code dans un module personnalisé. Pour la fonction suivante, je reçois cet avertissement:

Les implémentations de hook ne doivent pas dupliquer la documentation @param.

/**
 * Implements hook_field_widget_form_alter().
 *
 * @param array $element
 * @param array $form_state
 * @param array $context
 */
function mymodule_field_widget_form_alter(&$element, $form_state, $context) {
  if ($context['widget'] instanceof \Drupal\text\Plugin\Field\FieldWidget\TextareaWidget) {
    $element['#after_build'][] = '_mymodule_remove_textarea_help';
  }
}

Que dois-je faire pour résoudre ce problème? Je pensais que je devais supprimer les @paramcommentaires, mais quand je le fais, PhpStorm se plaint que je n'ai pas de commentaires param.

Patrick Kenny
la source
2
Désactivez "Préférences -> Éditeur -> Inspections -> PHP -> PHPDoc -> Commentaire PHPDoc manquant" peut-être? La réponse générale est d'obtenir que les inspections de documents de PHPStorm correspondent aux normes de documentation de Drupal
Clive
3
Le problème est que vous vérifiez les normes de codage drupal et les normes de codage php. Vous devez désactiver le renifleur pour les normes générales de codage php et utiliser les normes de codage drupal personnalisées
sgoelz
@Clive a la bonne réponse ici. Cette erreur n'a rien à voir avec la norme de codage, et tout à voir avec les inspections
intégrées de PHPStorm
La réponse acceptée résout le problème dans l'EDI mais si vous vérifiez la norme de codage, le problème est toujours là. Voir ma solution.
Adrian Cid Almaguer

Réponses:

5

Le problème est que si vous implémentez un hook et que vous n'avez pas besoin d'écrire plus que ceci:

/**
 * Implements hook_field_widget_form_alter().
 */

Parce que vous aurez toutes les informations dans la hook_field_widget_form_alter()définition, écrivez donc toujours dans les implémentations de hooks seulement ceci:

/**
 * Implements hook_hook_name().
 */

Dans ton cas:

/**
 * Implements hook_field_widget_form_alter().
 */
function mymodule_field_widget_form_alter(&$element, $form_state, $context) {
  if ($context['widget'] instanceof \Drupal\text\Plugin\Field\FieldWidget\TextareaWidget) {
    $element['#after_build'][] = '_mymodule_remove_textarea_help';
  }
}
Adrian Cid Almaguer
la source
2

Ajout d'une réponse pour la postérité; selon le commentaire de Clive:

Vous devez désactiver l'inspection PHPStorm intégrée qui vérifie les «commentaires PHPDoc manquants», puis vous pouvez supprimer vos @paramblocs en toute sécurité .

entrez la description de l'image ici

Chapabu
la source
1
Est-ce que l'électeur se soucierait d'expliquer ce qui ne va pas pour que je puisse modifier la réponse? Ou est-ce juste un downvote "tit for tat"?
Chapabu
1
Cela résout le problème dans l'EDI mais si vous vérifiez la norme de codage, le problème est toujours là. Voir ma solution.
Adrian Cid Almaguer
0

Comme d'autres l'ont dit, vous devez définir la configuration PHPStorm pour traiter votre projet comme un projet Drupal.

Ensuite, lancez-vous avec Coder .

Une fois ces packages installés, vous pouvez les câbler dans PHPStorm et définir votre système de normes en conséquence ou simplement exécuter les rapports à partir de la ligne de commande. Cela rendra votre environnement plus conforme aux normes de codage Drupal au lieu des normes générales livrées avec PHPStorm dès la configuration de la boîte.

Kevin
la source
1
Les votes négatifs étaient les miens. Je n'ai rien "bombe à tapis", j'ai simplement dévalorisé les réponses car elles étaient incorrectes.
Chapabu
2
Quel acte impoli.
Jimmy Ko