modül geliştirmede include (inc) dosyaları ne zaman kullanılır?


10

Sanırım bir .inc dosyasının (.module ile karşılaştırıldığında) yapısal farklılıklarını anlıyorum, ancak biri tasarım farklılıklarını tanımlayabilir mi? Hook_menu ile bir .inc dosyasını çağıran drupal örnek modüllerini görüyorum veya işlev tanımları için .inc dosyasını çağırabiliyorum.

  • Hangi koşullar altında .inc dosyasına bir kod koyulur? Bazılarının uyduğu genel tasarım kılavuzları var mı?
  • Birinin neden bir (veya birden çok) .inc dosyası kullanmasının netlik dışında bir avantajı var mı? verim? sürüm?

Teşekkürler!


1
Bence bu soruya kabul edilen cevaptan daha iyi bir açıklama alamazsınız :)
Clive

3
Şahsen, birden fazla .incurl'yi veya herhangi bir şeyi destekleyen bir modum varsa, her url'yi kullanırım. sadece organizasyon büyük bir .moduledosyaya rastgele fonksiyonları damping yerine sanırım . ancak @ Clive'nin yayın referansları olarak, bu sadece kişisel görüş veya alışık olduğunuz şeydir. burada doğru ya da yanlış yok.
au_stan

1
Gerçekten de, büyük modülleri ilgili işlevlerin makul parçalarına ayırmak için modulename.preprocess.inc, modulename.node.inc, modulename.menu.inc vb. kullandım, ancak bunları geliştirme dışında kullanmak için herhangi bir performans açısından tek gerçek neden modül büyük olasılıkla php motoru her yüklendiğinde ayrıştırmak istemiyorum nadiren denilen bazı oldukça büyük fonksiyonları varsa. daha sonra menü geri arama içerir şeyler nasıl yapılır gibi gerektiğinde onları getirebilir.
Jimajamma

Değer için kanca uygulamalarımı ve yardımcı işlevlerimi gruplandırıyorum ve uygun bir adlandırma kuralı (CAPITALS'te) kullanarak doktor bloklarını kategorilere ayırıyorum. Modülümün kodunda gezinirken farklı işlevsellik grupları arasındaki ayrımı görebiliyorum. Bir sistemin var olup olmadığını görmek için yorum standartlarına baktım, ama bir tane görebiliyordum.
dbj44

Yanıtlar:


12

Genel kural olarak, modül dosyasına daha sık gerekli olan kodu (örneğin birden fazla işlevden kullanılan yardımcı işlevler) ve .inc dosyalarına çok sık kullanılmayan veya belirli bir şekilde kullanılan kodu koyacağım sayfaları.

Drupal 6'dan beri kod, sayfa geri çağrılarını veya menü öğeleri için kullanılan form oluşturucuları içeren dosyaları otomatik olarak yükler. Bu nedenle, yönetimsel sayfalar için sayfa geri aramaları normalde .admin.inc dosyalarına, normal sayfalar için sayfa geri aramaları ise .pages.inc dosyalarına konur.

Drupal 7'den beri, sınıf somutlaştırıldığında sınıf içeren dosyalar otomatik olarak yüklenir. Drupal 7, modüllerin kancalarının hangi dosyalarda tanımlandığını tanımlamasını sağlar ( hook_hook_info () aracılığıyla ). Örneğin, system_hook_info () dosyaları gibi .tokens.inc dosyalarını tanımlar hook_token_info(), hook_token_info_alter(), hook_tokens()ve hook_tokens_alter()uygulamaları bulunabilir; bu şekilde, bu kancalardan biri gerektiğinde bu dosyalar otomatik olarak yüklenir.
Bu, gerektiğinde yüklenen dosyalarda ve her zaman Drupal'dan yüklenen kodda kodun daha da bölünmesine izin verir.

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.