Налагоджувальні гачки, які вистрілили?


9

Я дещо новачок у розробці модулів.

Чи є спосіб наразі вивести, які гачки виконані на певних вузлах?

Це було б зроблено за допомогою xdebug?

Відповіді:


9

Якщо ви не отримали фатальну помилку (або порожній екран), досить легко отримати список модулів, які будуть викликатись, коли викликається спеціальний гак:

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

Ви можете використовувати такі речі, як xDebug, щоб відстежувати потік Drupal, але це може бути надзвичайно великим, особливо якщо ви новачок у Drupal.


1
Якщо ви хочете спробувати налагодження і не хочете витрачати години на його налаштування, ви можете спробувати Quickstart . Це віртуальна машина і за допомогою друку дуже просто налаштувати сайт, потім поставити у свій модуль, імпортувати в Netbeans і натиснути налагодження.
Віскі

1
Чи не було б це просто показувати всі модулі, які реалізують певний гак, не всі гачки, на які Drupal закликав до цього моменту? Пізніше я читаю запит @ chrisjlee.
mpdonadio

1
@MPD Він покаже не лише, які модулі реалізують гачок, а й порядок їх виклику. Якщо контекст - це те, що відбувається до / після виклику гака мого модуля, вищезазначеного буде достатньо. Якщо ви хотіли розібратися, чи викликається гачок foo в певний момент потоку виконання, це буде досить важко зрозуміти, оскільки Drupal настільки складний. Спеціально для нового розробника. Я не впевнений, чи потрібно це ОП, але це, мабуть, корисніше будь-яких пропозицій xDebug.
googletorp
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.