Bagaimana cara memperbaiki "Implementasi Hook tidak boleh menduplikasi dokumentasi @param."?


10

Saya menggunakan PhpStorm untuk bereksperimen dengan membersihkan kode saya di modul khusus. Untuk fungsi berikut, saya mendapatkan peringatan ini:

Implementasi hook tidak boleh menduplikasi dokumentasi @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';
  }
}

Apa yang harus saya lakukan untuk memperbaikinya? Saya pikir saya perlu untuk menghapus @paramkomentar, tapi ketika saya melakukan itu, PhpStorm mengeluh bahwa saya tidak memiliki komentar param.


2
Matikan "Preferensi -> Editor -> Inspeksi -> PHP -> PHPDoc -> Missing PHPDoc comment" mungkin? Jawaban umum adalah untuk mendapatkan inspeksi dokumen PHPStorm agar sesuai dengan standar dokumentasi Drupal
Clive

3
Masalahnya adalah Anda memeriksa standar pengkodean drupal dan standar pengkodean php. Anda harus menonaktifkan sniffer untuk standar pengkodean php umum dan menggunakan standar pengkodean drupal khusus
sgoelz

@Clive memiliki jawaban yang benar di sini. Kesalahan itu tidak ada hubungannya dengan standar pengkodean, dan semuanya berkaitan dengan inspeksi
bawaan PHPStorm

Awnswer yang diterima memecahkan masalah dalam IDE tetapi jika Anda memeriksa standar pengkodean masalahnya masih ada. Lihat solusi saya.
Adrian Cid Almaguer

Jawaban:


5

Masalahnya adalah jika Anda menerapkan sebuah hook dan Anda tidak perlu menulis lebih dari ini:

/**
 * Implements hook_field_widget_form_alter().
 */

Karena Anda akan memiliki semua informasi dalam hook_field_widget_form_alter()definisi, jadi tulis saja selalu dalam implementasi hooks ini saja:

/**
 * Implements hook_hook_name().
 */

Dalam kasus Anda:

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

1

Menambahkan jawaban untuk keturunan; sesuai komentar Clive:

Anda harus mematikan inspeksi PHPStorm bawaan yang memeriksa "Komentar PHPDoc yang Hilang", maka Anda dapat menghapus @paramblok Anda dengan aman .

masukkan deskripsi gambar di sini


1
Apakah downvoter mau menjelaskan apa yang salah sehingga saya bisa mengubah jawabannya? Atau hanya "tit for tat" downvote?
Chapabu

1
Ini memecahkan masalah dalam IDE tetapi jika Anda memeriksa standar pengkodean masalahnya masih ada. Lihat solusi saya.
Adrian Cid Almaguer

0

Seperti yang orang lain katakan, Anda perlu mengatur konfigurasi PHPStorm untuk memperlakukan proyek Anda sebagai proyek Drupal.

Yang kedua, bangun dan jalankan dengan Coder .

Setelah Anda menginstal paket-paket itu, Anda dapat memasang mereka di PHPStorm dan mengatur sistem standar Anda atau menjalankan laporan dari baris perintah. Ini akan membuat lingkungan Anda lebih sesuai dengan standar pengkodean Drupal daripada yang umum yang disertakan dengan PHPStorm di luar kotak konfigurasi.


1
Downvotes adalah milikku. Saya tidak "membombardir" apa pun, saya hanya menurunkan jawaban karena mereka salah.
Chapabu

2
Tindakan yang tidak sopan.
Jimmy Ko
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.