Як виправити "Реалізація гака не повинна дублювати документацію @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. Вам слід вимкнути sniffer для загальних стандартів кодування PHP та скористатися спеціальними стандартами кодування для drupal
sgoelz

@Clive має правильну відповідь тут. Ця помилка не має нічого спільного із стандартом кодування, і все, що стосується PHPStorm, вбудованого в інспекції :)
Chapabu

Прийнятий awnswer вирішує проблему в 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.

По-друге, вставай і біжи з Coder .

Після того, як ви встановите ці пакети, ви можете їх з'єднати в PHPStorm і відповідно встановити свою систему стандартів або просто запустити звіти з командного рядка. Це зробить ваше середовище більш відповідним стандартам кодування Drupal замість загальних, які постачаються з PHPStorm поза конфігурацією вікна.


1
Спустоші були моїми. Я нічого не "килимав", я просто спростовував відповіді, оскільки вони були невірними.
Чапабу

2
Що за невірний вчинок.
Джиммі Ко
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.