it-swarm-tr.com

Sınıfları kullanarak modül oluşturmak için en iyi uygulama

Tembel/otomatik yükleme Drupal 7) sınıfları olarak modüllerimi oluşturmaya başlamak istiyorum ve yaptığım bazı modüllere (katkı veya çekirdek) bakmak isterim harika bir iş.

Bir sınıfı kanca olarak entegre etmenin yaratıcı bir yolu var mı? Her özelliği ctools eklentisi olarak uygulayabilir miyim?

Yoldan geçenler, D7'nin otomatik/tembel yükleme sınıfları/arabirimleri için modül files[] Dosyalarında yeni .info Bildirimlerine sahip olduğunu not etmelidir: .info dosyaları yazma (Drupal 7.x) .

Aşağıdakiler Drupal topluluğu Nesne yönelimli bir bakış açısıyla Drupal programlama 'dan motivasyonları ve anayasayı (olduğu gibi) almak için iyi bir okumadır.

19
electblake

Bir modül bir sınıf değildir Crell tarafından önce okumanız gereken şeydir.

OOP 7 içindeki en büyük Drupal kısmı) yeni veritabanı soyutlama katmanıdır (aynı Crell ve diğerleri tarafından tasarlanan). yeniden kullanılabilir.

Örneğin:

hala tartışılan tartışılan bir şeyBilgi gizleme . DBTNG, sınıf özelliklerini korumalı yaparak ve doğrudan erişime izin vermeyerek bunu uygular. Öte yandan, hook_query_alter () var ve çeşitli referans getter yöntemleri ile neredeyse serbestçe değiştirilebilir.

16
Berdir

Bu ilginç bir soru.

Bir sınıf olarak bir Drupal modülü fikri çok ilgi çekicidir, ancak D7 modüllerinde bile, isimle kontrol edilen kanca işlevlerini uygular, böylece modülünüz için bir sınıf oluştursanız bile, hala onları çağırmak için kanca fonksiyonları uygulamak gerekir.

Bununla birlikte, birçok modül sınıfı dahili olarak kullanır ve bu sınıflar aracılığıyla işlevselliği ortaya koyar. Bunun en açık örneği manzaralardır. Bu yüzden bakmak için iyi bir yer olabilir. Ancak, birçok modülün sınıfları kendi yöntemleriyle kullandığını unutmayın, bu nedenle görünümlere bakarak öğrendikleriniz her zaman geçerli olmayabilir.

3
Jeremy French

Varlık API'sı (katkı modülü), varlık türlerinizin her biri için bir "varlık sınıfı" bildirmenize olanak tanır, böylece varlığınızla ilgili tüm kodlar (oluşturma, yükleme, kaydetme, erişim vb.) Bir sınıfa girebilir (Organik Gruplar bunu yapar).

Dedi ki, aşırıya kaçmayın. ctools eklentileri ihtiyacınız olduğunda iyi bir şeydir (sonraki Görünümleri, Panelleri veya Kuralları yazıyorsunuz), ancak sınıfları her yerde sadece ideolojik saflık için kullanmak size çok iyi gelmeyecek.

2
Bojan Zivanovic