Hata ayıklayan kancalar?


9

Modül geliştirme konusunda biraz yeniyim.

Şu anda belirli düğümlerde hangi kancaların çalıştırıldığını çıkarmanın bir yolu var mı?

Bu xdebug ile yapılabilir mi?

Yanıtlar:


9

Önemli bir hata (veya boş ekran) almadığınız sürece, özel bir kanca çağrıldığında çağrılacak modüllerin listesini almak oldukça kolaydır:

$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'ın akışını izlemek için xDebug gibi şeyler kullanabilirsiniz, ancak özellikle Drupal'da yeniyseniz, bu çok zor olabilir.


1
Hata ayıklamayı denemek istiyorsanız ve kurulum saatlerini harcamak istemiyorsanız, Quickstart'ı deneyebilirsiniz . Sanal bir makine ve drush ile bir site kurmak, sonra modülünüzü koymak, Netbeans içine almak ve hata ayıklamak vurmak çok kolaydır.
Viski

1
Bu sadece belirli bir kancayı uygulayan tüm modülleri göstermez mi, Drupal'ın sahip olduğu tüm kancalar o noktaya kadar çağırmadı mı? Daha sonra @ chrisjlee'nin isteğini nasıl okudum.
mpdonadio

1
@MPD Sadece hangi modüllerin bir kanca uyguladığını değil, aynı zamanda çağrılma sırasını da gösterir. Bağlam, modülümün çağrılmasından önce / sonra gerçekleşirse, yukarıdakiler yeterli olacaktır. İcra akışında kanca foo'nun belirli bir anda çağrılıp çağrılmadığını anlamak istiyorsanız, Drupal çok karmaşık olduğu için anlaşılması oldukça zor olacaktır. Özellikle yeni bir geliştirici için. OP'nin buna ihtiyacı olup olmadığından emin değilim, ancak muhtemelen herhangi bir xDebug önerisinden daha yararlıdır.
googletorp
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.