Ayrıca Sunum-soyutlama-kontrol ve diğer desenleri olan Drupal çekirdek kullanılan , göze çarpacak daha kullanılan herhangi diğer tasarım kalıpları vardır popüler katkı modüllerin böyle Views, CCK ve Özelliklere olarak?
Ayrıca Sunum-soyutlama-kontrol ve diğer desenleri olan Drupal çekirdek kullanılan , göze çarpacak daha kullanılan herhangi diğer tasarım kalıpları vardır popüler katkı modüllerin böyle Views, CCK ve Özelliklere olarak?
Yanıtlar:
Başlamak için bir yer, çekirdeğin kendisi ve katkıda bulunmak için maruz kalan kalıplardır. - Drupal Watchdog makalesinde Larry Garfield (Crell) tarafından yazılmış harika bir yazı bulabilirsiniz .
Gözlemciler, ziyaretçiler ve gözetleme mezarları
Drupal aslında Gözlemci ve Ziyaretçinin ikiz desenleri üzerine inşa edilmiştir, ancak isimleriyle adlandırmazlar. Bunun yerine, onlara kanca diyor.
hook_node_load()
,hook_user_login()
vb. özünde düğümler ve kullanıcılar üzerindeki gözlemcilerdir.hook_form_alter()
,hook_node_view()
vb. özünde ziyaretçilerdir. Drupal ikisi arasında ayrım yapmadığından, bazı kancalar her iki desende tartışmalı olarak düşünülebilir, ancak prensip aynıdır.Fabrikalar ve komutlar
Fabrika modelinde birkaç varyasyon vardır, ancak hepsi aynı fikre kadar kaynar: Bir nesne, bir müşteri, başka bir nesne, bir fabrika, bir mantığın uygun bir şekilde uygulanmasını ister, ancak bunun ne olduğu umrumda değil . Karar vermek fabrikaya kalmış.
db_insert()
Önemli bitleri aşağıda gösterilen işlevi göz önünde bulundurun :function db_insert($table, array $options = array()) { // ... return Database::getConnection($options['target'])->insert($table, $options); }
Database::getConnection()
Yöntem bu site için bir bağlantı nesnesi uygun düzgün döndüren bir fabrikasıdır.Doktor Drupal'ın Bağımlılık Enjeksiyonu
Drupal 6'da menü sistemi cesaretlendirildi ve çok adımlı bir işlem olarak yeniden yazıldı. Şimdi aynı sayfa geri aramasını şu şekilde uygulayacağız:
function example_menu() { $items['node/%node/example'] = array( 'page callback' => 'example_page', 'page arguments' => array(1), // ... ); return $items; } function example_page($node) { // Do useful stuff here. }
Bu yeni kurulumda menü yönlendiricisi daha karmaşık hale geliyor. Ancak, bunun karşılığında, sayfa geri çağrısı, kendisine bağlı olduğu, yani içine enjekte edildiği düğümü alır. Bu bize bir dizi fayda sağlar.
Beş para için git (r)
Ortak yaklaşımlardan biri, Broker veya Arabulucu fikrindeki bazı değişikliklerdir. Bu tasarımda, bir nesne doğrudan başka bir nesneden bilgi istemez. Bunun yerine, kendisine enjekte edilmiş olabilecek bir aracı nesneden kendi adına böyle bir talepte bulunmasını ister. Yine de birinci nesnenin aktif olarak bilgi istemesi gerektiği anlamına gelse de, bilgi istemesi gerekebilecek diğer nesnelerin sayısıyla değil, yalnızca arabulucu nesnesine sıkıca bağlıdır. Bu, diğer sistemlerin değişmesi durumunda, dokunan her sistemi değil, yalnızca aracıyı güncellememiz gerektiği anlamına gelir.