Ganci di debug che hanno funzionato?


9

Sono in qualche modo nuovo nello sviluppo del modulo.

Esiste un modo per generare attualmente quali hook sono stati eseguiti su determinati nodi?

Questo sarebbe fatto con xdebug?

Risposte:


9

A meno che non si verifichi un errore fatale (o schermo vuoto) è abbastanza facile ottenere un elenco di moduli che verranno invocati quando viene chiamato un hook speciale:

$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.

Puoi usare cose come xDebug per tracciare il flusso di Drupal, ma questo può essere travolgente, specialmente se non conosci Drupal.


1
Se desideri provare il debug e non vuoi passare ore a configurarlo, puoi provare Quickstart . È una macchina virtuale e con drush è molto semplice configurare un sito, quindi inserire il modulo, importare in Netbeans ed eseguire il debug.
Whisky

1
Questo non mostrerebbe solo tutti i moduli che implementano un hook particolare, non tutti gli hook che Drupal ha richiamato fino a quel punto? Il secondo è come ho letto la richiesta di @ chrisjlee.
mpdonadio

1
@MPD Non mostrerà solo quali moduli implementano un hook ma anche l'ordine in cui vengono chiamati. Se il contesto è ciò che accade prima / dopo che viene chiamato l'hook del mio modulo, sarà sufficiente quanto sopra. Se vuoi capire se l'hook foo viene chiamato in un determinato momento nel flusso di esecuzione, sarà abbastanza difficile da capire, dal momento che Drupal è così complesso. Soprattutto per un nuovo sviluppatore. Non sono sicuro se questo è ciò di cui ha bisogno OP, ma è probabilmente più utile di qualsiasi suggerimento xDebug.
googletorp
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.