Kait debugging yang dipecat?

9

Saya agak baru dalam pengembangan modul.

Apakah ada cara untuk saat ini menampilkan kait apa yang telah dijalankan pada node tertentu?

Apakah ini akan dilakukan dengan xdebug?

chrisjlee
sumber

Jawaban:

9

Kecuali jika Anda mendapatkan kesalahan fatal (atau layar kosong), cukup mudah untuk mendapatkan daftar modul yang akan dipanggil ketika hook khusus dipanggil:

$modules = module_implements($hook);
foreach ($modules as $key =>  $module) {
  $function = $module . '_' . $hook;
  if (!function_exists($function)) {
    unset($modules[$key]);
  }
}
// $modules is now an array containing all the modules that will be invoked by $hook.

Anda bisa menggunakan hal-hal seperti xDebug untuk melacak aliran Drupal, tetapi ini bisa sangat melelahkan, terutama jika Anda baru mengenal Drupal.

googletorp
sumber
1
Jika Anda ingin mencoba debugging dan tidak ingin menghabiskan waktu berjam-jam mengaturnya, Anda dapat mencoba Quickstart . Ini adalah mesin virtual dan dengan drush sangat mudah untuk mengatur situs, kemudian dimasukkan ke dalam modul Anda, impor di Netbeans dan tekan debug.
Wiski
1
Tidakkah ini hanya menunjukkan semua modul yang mengimplementasikan hook tertentu, tidak semua hook yang telah dipanggil Drupal hingga saat itu? Yang selanjutnya adalah bagaimana saya membaca permintaan @ chrisjlee.
mpdonadio
1
@ MPD Ini tidak hanya akan menunjukkan modul mana yang mengimplementasikan sebuah hook tetapi juga urutannya. Jika konteksnya adalah apa yang terjadi sebelum / setelah pengait modul saya dipanggil, hal di atas sudah cukup. Jika Anda ingin mengetahui apakah hook foo dipanggil pada saat tertentu dalam alur eksekusi, akan sangat sulit untuk mengetahui, karena Drupal sangat kompleks. Khusus untuk pengembang baru. Saya tidak yakin apakah ini yang dibutuhkan OP, tetapi mungkin lebih berguna daripada saran xDebug.
googletorp