Jak naprawić „Implementacje hooka nie powinny powielać dokumentacji @param.”?

10

Używam PhpStorm do eksperymentowania z czyszczeniem mojego kodu w niestandardowym module. W przypadku następującej funkcji pojawia się to ostrzeżenie:

Implementacje hooka nie powinny powielać dokumentacji @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';
  }
}

Co powinienem zrobić, aby to naprawić? Myślałem, że muszę usunąć @paramkomentarze, ale kiedy to robię, PhpStorm narzeka, że ​​nie mam żadnych komentarzy.

Patrick Kenny
źródło
2
Wyłącz „Preferencje -> Edytor -> Inspekcje -> PHP -> PHPDoc -> Brak komentarza PHPDoc” może? Ogólną odpowiedzią jest dostosowanie inspekcji dokumentów PHPStorm do standardów dokumentacji Drupala
Clive
3
Problem polega na tym, że sprawdzasz standardy kodowania drupal i standardy kodowania php. Powinieneś dezaktywować sniffer dla ogólnych standardów kodowania php i używać niestandardowych standardów kodowania drupal
sgoelz
@Clive ma właściwą odpowiedź tutaj. Ten błąd nie ma nic wspólnego ze standardem kodowania, a wszystko z wbudowanymi inspekcjami
PHPStorm
Zaakceptowana odpowiedź rozwiązuje problem w IDE, ale jeśli sprawdzisz standard kodowania, problem będzie nadal występował. Zobacz moje rozwiązanie.
Adrian Cid Almaguer

Odpowiedzi:

5

Problem polega na tym, że jeśli wdrażasz hak i nie musisz pisać więcej niż to:

/**
 * Implements hook_field_widget_form_alter().
 */

Ponieważ będziesz miał wszystkie informacje w hook_field_widget_form_alter()definicji, więc po prostu zawsze pisz w implementacjach hooków tylko to:

/**
 * Implements hook_hook_name().
 */

W Twoim przypadku:

/**
 * 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
źródło
2

Dodanie odpowiedzi dla potomności; zgodnie z komentarzem Clive'a:

Musisz wyłączyć wbudowaną kontrolę PHPStorm, która sprawdza „Brak komentarzy PHPDoc”, a następnie możesz bezpiecznie usunąć swoje @parambloki.

wprowadź opis zdjęcia tutaj

Chapabu
źródło
1
Czy downvoter chciałby wyjaśnić, co jest nie tak, żebym mógł zmienić odpowiedź? A może po prostu głos „tit for tat”?
Chapabu
1
To rozwiązuje problem w IDE, ale jeśli sprawdzisz standard kodowania, problem nadal występuje. Zobacz moje rozwiązanie.
Adrian Cid Almaguer
0

Jak powiedzieli inni, musisz ustawić konfigurację PHPStorm, aby traktować swój projekt jako projekt Drupal.

Po drugie, zacznij działać z Coderem .

Po zainstalowaniu tych pakietów możesz połączyć je w PHPStorm i odpowiednio ustawić system standardów lub po prostu uruchomić raporty z wiersza poleceń. To sprawi, że twoje środowisko będzie bardziej zgodne ze standardami kodowania Drupal zamiast z ogólnymi, które są dostarczane z PHPStorm od razu po konfiguracji.

Kevin
źródło
1
Opinie były moje. Niczego nie „bombardowałem dywanami”, po prostu zanegowałem odpowiedzi, ponieważ były one niepoprawne.
Chapabu,
2
Co za niegrzeczny czyn.
Jimmy Ko