해고 된 훅 디버깅?


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.

Drupal의 흐름을 추적하기 위해 xDebug와 같은 것을 사용할 수 있지만 Drupal을 처음 사용하는 경우 특히 압도적 일 수 있습니다.


1
디버깅을 시도하고 설정하는 데 시간을 소비하지 않으려면 빠른 시작 을 시도하십시오 . 그것은 가상 머신이며 사이트를 설정하고 모듈을 넣고 Netbeans로 가져오고 디버그를 수행하는 것이 매우 쉽습니다.
Whisky

1
Drupal이 그 시점까지 호출 한 모든 후크가 아니라 특정 후크를 구현하는 모든 모듈 만 표시합니까? 나중에 @chrisjlee의 요청을 읽는 방법입니다.
mpdonadio

1
@MPD 후크를 구현하는 모듈뿐만 아니라 호출 순서도 보여줍니다. 컨텍스트가 모듈의 후크가 호출되기 전후에 발생하는 경우 위의 것으로 충분합니다. 실행 흐름에서 특정 시점에 후크 foo가 호출되는지 알아 내려면 Drupal이 너무 복잡하기 때문에 파악하기가 매우 어렵습니다. 특히 새로운 개발자에게 적합합니다. 이것이 OP가 필요한지 확실하지 않지만 어쨌든 xDebug 제안보다 더 유용 할 것입니다.
googletorp
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.