Diğer cevaplar harika, doğru, ayrıntılı, ancak sorucunun aradığı kavramın çıplak kemiklerini açıklayan "basit kelimeler" olduklarından emin değilim.
Kanunları, " Duraklatmak için başka bir şey olan var mı? " Herhangi bir modül, buna cevap veren bir işleve sahip olabilir ve kodun bu noktasında kendisine iletilen uygun verilerle tetiklenir.
Güzel ve basit bir örnek, hook_node_delete () 'dir . Herhangi bir modül bir düğüm silindiğinde olayların gerçekleşmesini sağlamak için kullanabilir. Dokümanlar size bu kancanın modülle birlikte çalışacak olan silinmiş düğümün nesnesini geçtiğini ve çağrıldığı zamanın kesin zamanlaması gibi diğer yararlı bilgileri ana hatlarıyla belirtir (örneğin, düğüm verilerinin aslında veritabanından silinmesinden önce olduğu gibi) ve Drupal’ın kodunda kanca olarak adlandırılır (birden fazla yer olabilir).
Hangi kancaların bulunduğunu keşfedebilir ve Drupal api'de "hook_" ile başlayan şeyleri keşfederek onlara hangi verilerin iletildiğini bulabilirsiniz .
Kancalar ad kurallarına göre çalışır: hook_node_delete
örnek olarak kullanarak , düğüm silme işlemi kancanın çağrıldığı noktaya ulaştığında, bunun gibi bir işlevi olan her modül için, kancanın adındaki [modulename]_node_delete()
kanca kelimesinin modülün adı ile değiştirildiği (örneğin, my_amazing_module_node_delete()
), bu işlevler çağrılır.
Neden? Böylece herhangi bir modül bu kilit noktalarda herhangi bir şey yapabilir: örneğin, silinen düğüme bakabilir ve belirli bir koşulu karşılaması durumunda işler yapabilirsiniz (örneğin, bir yöneticiye e-posta gönderebilir veya uzun bir işlem başlatabilirsiniz).
Bazı kancalar, işlenmeden hemen önce oluşturulan şeyleri değiştirmenize izin verir. Örneğin, hook_menu_alter () , sistemin oluşturduğu geçerli menü öğelerini size iletir . Herhangi bir modül, some_modulename_menu_alter () işlevini tanımlayabilir ve bunlara bakabilir, isteğe bağlı olarak bunları değiştirebilir (bazılarını silebilir, bazılarını ekleyebilir, sıralayabilir ...) ve yeni değiştirilen menüyü geri iletebilir.
Çok basit, gerçekten güçlü ve Drupal'ın modüler bir sistem olarak nasıl çalıştığının kalbinde yer alıyor. Kanca uygulamaları çoğu Drupal modülünün merkezindedir.
Bir Drupal modülünün koduna bakarken, Drupal topluluğu bir kancanın her bir uygulamasının, önünde bunun gibi yorum yapın ("Kanca _..." bitini uygular)
/**
* Implements hook_some_hook().
*
* Some descriptive summary of what this does
*/
function my_amazing_module_some_hook() {
API olarak işlev gören bazı modüller kendi kancalarını tanımlar. Örneğin, Görünümler , bir görünüm oluşturma veya görüntüleme sürecinde çeşitli noktalardaki verileri eklemenize, okumanıza ve düzenlemenize izin veren birçok kanca tanımlar. Özel modüllerde oluşturulan kancalar hakkında iki yerden bilgi alabilirsiniz (modülün kuralları takip ettiği varsayılarak):
Önyükleme, diğerleri açıklandığı gibi, temelde önyüklemedir - diğer açık açıklamaları çoğaltmayacağım.