Her şeyin bir pakete ihtiyacı var mı?


11

Entity API'sini öğreniyorum. Ben, örneğin Views'da kullanabilmek için "drupalize" istiyorum basit bir ekstra tablo var.

Biraz okudum, birkaç video izledim, birkaç örneğe baktım. Ben kavramı üzerinde şaşırıp demetleri . Paketlerin ne olduğunu anlıyorum (örneğin, düğüm türleri düğüm varlığının demetleri).

Ama benim kullanımım için sadece bir paket olacak. Gördüğüm örneklerde paket veritabanı tablosunda saklanıyor; bu benim için gerekli değildir çünkü her kayda karşı aynı değerde depolanır. Bu yüzden bir şekilde bunu atlayabileceğimi ya da varlığımın her zaman paket için standart bir dize döndürebileceğini düşünüyordum.

Yanlış anladım mı? Paketlerin her zaman veritabanı tablosu düzeyinde uygulanması ve uygulanması gerekir mi?

Yanıtlar:


9

Evet, her zaman varlıklar için bir paket gereklidir.

Kendi paketlerinizi tanımlamazsanız, varlık sistemi sizin için varlık türüyle aynı ada sahip varsayılan bir paket atar ve bu paket kullanılır.

Yalnızca bir paketiniz varsa ve yalnızca bir paketiniz varsa, varlık tablonuzda bunun için belirli bir alanınızın olması gerekmez. Sorunuzda önerdiğiniz gibi, her zaman aynı olurdu, bu yüzden gereksiz olurdu ve sadece db sorgularınıza ekstra ek yük (ancak küçük) ekleyin.

Bir noktada varlığınızın farklı alt türlerini birbirinden ayırmanız gerekebileceğini düşünüyorsanız, bunu başlangıçtan itibaren inşa etmeye değer; bu gerçekten sizin kullanım durumunuza bağlıdır.


Bununla birlikte, bir kuruluşun bir paketi olması gerekiyorsa, paketin kendisi nasıl bir varlık olabilir (?!)
artfulrobot 21:12

1
Eminim ki CRUD işlevselliğinin genel bir varlık türüne soyutlanması ve tüm nesnelerin (varlıklar, paketler, alanlar vb.) Kendi nesnelerini uygulamak zorunda kalmadan avantaj sağlayabilmesi için sistem boyunca yeniden kullanılması fikrinden bahsettiğimden eminim. . Bir Drupal varlığı (düğüm, kullanıcı, vb.) Açısından bir paket çok farklı bir şeydir. Bir paket gerçekten de Drupal bir varlıksa, kendisi mantıklı olmayan paketlere sahip olabilir :)
Clive
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.