Как исправить «Реализации Hook не должны дублировать документацию @param.»?


10

Я использую PhpStorm, чтобы поэкспериментировать с очисткой кода в пользовательском модуле. Для следующей функции я получаю это предупреждение:

Реализации хуков не должны дублировать документацию @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';
  }
}

Что я должен сделать, чтобы это исправить? Я думал, что мне нужно удалить @paramкомментарии, но когда я это делаю, PhpStorm жалуется, что у меня нет комментариев к параметрам.


2
Отключить "Настройки -> Редактор -> Инспекции -> PHP -> PHPDoc -> Отсутствует комментарий PHPDoc" возможно? Общий ответ получить проверки документов PhpStorm, чтобы соответствовать до стандартов документации в Drupal
Clive

3
Проблема в том, что вы проверяете стандарты кодирования drupal и стандарты кодирования php. Вы должны деактивировать сниффер для общих стандартов кодирования php и использовать пользовательские стандарты кодирования
drupal

@Clive имеет правильный ответ здесь. Эта ошибка не имеет ничего общего со стандартом кодирования и со встроенными проверками
PHPStorm

Принятый ответ решает проблему в IDE, но если вы проверите стандарт кодирования, проблема все еще остается. Смотрите мое решение.
Адриан Сид

Ответы:


5

Проблема в том, что если вы реализуете ловушку, и вам не нужно писать больше, чем это:

/**
 * Implements hook_field_widget_form_alter().
 */

Потому что у вас будет вся информация в hook_field_widget_form_alter()определении, поэтому просто пишите всегда в реализациях ловушек только это:

/**
 * Implements hook_hook_name().
 */

В твоем случае:

/**
 * 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';
  }
}

2

Добавление ответа для потомков; согласно комментарию Клайва:

Вам необходимо отключить встроенную проверку PHPStorm, которая проверяет «отсутствующие комментарии PHPDoc», после чего вы можете безопасно удалить свои @paramблоки.

введите описание изображения здесь


1
Не мог бы даунвотер объяснить, что не так, чтобы я мог изменить ответ? Или это просто «синица для тата»?
Чапабу

1
Это решает проблему в IDE, но если вы проверите стандарт кодирования, проблема все еще остается. Смотрите мое решение.
Адриан Сид

0

Как уже говорили другие, вам нужно установить конфигурацию PHPStorm для обработки вашего проекта как проекта Drupal.

Во-вторых, встань и беги с Кодером .

После того, как вы установили эти пакеты, вы можете подключить их в PHPStorm и соответственно настроить свою систему стандартов или просто запустить отчеты из командной строки. Это сделает вашу среду более совместимой со стандартами кодирования Drupal, а не со стандартными, которые поставляются с PHPStorm из коробки конфигурации.


1
Отказы были мои. Я ничего не "ковер бомба", я просто отрицал ответы, поскольку они были неправильными.
Чапабу

2
Какой невежливый поступок.
Джимми Ко
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.