Móc gỡ lỗi mà bắn?


9

Tôi hơi mới đối với việc phát triển mô-đun.

Có cách nào để hiện ra những gì hook đã được chạy trên các nút nhất định không?

Điều này sẽ được thực hiện với xdebug?

Câu trả lời:


9

Trừ khi bạn gặp phải một lỗi nghiêm trọng (hoặc màn hình trống), thật dễ dàng để có được một danh sách các mô-đun sẽ được gọi khi một hook đặc biệt được gọi:

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

Bạn có thể sử dụng những thứ như xDebug để theo dõi dòng chảy của Drupal, nhưng điều này có thể quá sức, đặc biệt nếu bạn chưa quen với Drupal.


1
Nếu bạn muốn thử gỡ lỗi và không muốn mất hàng giờ để thiết lập nó, bạn có thể thử Quickstart . Nó là một máy ảo và với drush, rất dễ dàng để thiết lập một trang web, sau đó đưa vào mô-đun của bạn, nhập vào Netbeans và nhấn gỡ lỗi.
Whiskey

1
Điều này sẽ không chỉ hiển thị tất cả các mô-đun triển khai một hook cụ thể chứ không phải tất cả các hook có Drupal đã gọi đến thời điểm đó? Sau này là cách tôi đọc yêu cầu của @ chrisjlee.
mpdon Arena

1
@MPD Nó sẽ không chỉ hiển thị các mô-đun thực hiện một hook mà còn theo thứ tự mà chúng được gọi. Nếu bối cảnh là những gì xảy ra trước / sau khi hook của mô-đun của tôi được gọi, thì ở trên sẽ đủ. Nếu bạn muốn tìm hiểu xem hook foo có được gọi tại một thời điểm nhất định trong luồng thực thi hay không, sẽ khá khó để tìm ra, vì Drupal rất phức tạp. Đặc biệt đối với một nhà phát triển mới. Tôi không chắc đây có phải là thứ OP cần hay không, nhưng có lẽ nó hữu ích hơn bất kỳ đề xuất xDebug nào.
googletorp
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.