Makale

Çekirdek Field API: bundle alanları artık tek, güvenli bir sistemde

CPalius çekirdeğine eklenen Field API; alan tipi, widget, formatter ve depolama katmanını tek, güvenli bir yerde toplar.

· ZemoCA · 2 dk okuma

Bugüne kadar her içerik modülü kendi alan mantığını yeniden yazıyordu: Pages ACF benzeri bir prototip, Blog kendi ad-hoc alanları. Sonuç olarak mass-assignment koruması (Manifesto Yasa 5.3), XSS temizliği ve düz alan indeksi (Yasa 6.3) her modülde ayrı ve tutarsız uygulanıyordu. Field API bu boşluğu kapatıyor.

Kavramlar

  • Bundle — Node::type değeri (post, page, portfolio). Alanlar bundle'a bağlanır.
  • Field type — koddur; normalize / validate / index / ayar şemasını tanımlar. 14 çekirdek tip gelir: Text, Textarea, RichText, Boolean, Integer, Decimal, Email, Url, Date, DateTime, Select, EntityReference, Image, File.
  • Field definition — hangi bundle'da hangi alan: cp_field_definitions tablosunda, AACP'den runtime düzenlenebilir.
  • Widget / Formatter — alanı forma ve güvenli HTML'e çeviren parçalar.

Güvenlik

FieldValueNormalizer yalnızca bir FieldDefinition ile desteklenen anahtarları yazar; ham istek dizileri asla doğrudan Node::data içine merge edilmez. RichText alanları sanitizer'dan geçer, diğer tüm formatter'lar kaçış (escape) yapar. Alan bazında view/edit yetenek kontrolü hem formda hem görüntülemede uygulanır.

Performans

Tip kaydı derleme zamanında yapılır (sıfır runtime maliyet). Alan tanımları bundle başına önbelleğe alınır. Referans alanları ReferenceBatchLoader ile hedef tip başına tek sorguda çözülür — listelerde N+1 yok. queryable işaretlenen alanlar mevcut düz alan indeksine (node_field_index) yazılır ve DB motorundan bağımsız sorgulanır.

Yönetim

/aacp/fields ekranından bundle seçip alan ekler, tip seçicisine göre dinamik ayar alt-formu doldurur, ağırlığa göre sıralarsınız. Yetki: system.fields.manage.

Modüller bu API'yi tüketir — kod modülde kalır, tıpkı #[CpApi] ve Hook sistemini tükettikleri gibi.

Yorumlar (0)

Henüz yorum yok. İlk yorumu sen yaz.

Yorum yaz

Yorumunuz yayınlanmadan önce incelenecektir.

İlgili Yazılar

CPalius CMF 2.2.68: Daha Hızlı, daha güvenli
Makale

CPalius CMF 2.2.68: Daha Hızlı, daha güvenli

CPalius 2.2.68 yayında. Bu sürümde üç şeye odaklandık: ana sayfayı baştan yazdık, sayfa önbelleğindeki gizli bir hatayı bulup düzelttik ve hız ile güvenliği, sa…