İçeriğe geç
Dokümanlar

Modüller nasıl çalışır

Bir modülün dört durumu vardır ve her biri verine farklı bir şey yapar.

Kurulum

Platform ZIP'i açar, manifesti şemaya karşı doğrular, kurulumu planlar, modülün tablolarını oluşturur, SQL migration'larını uygular, yapılandırma satırını yazar, çevirilerini senkronlar, registry'yi yeniden üretir, derler ve yeniden başlar.

Plan bilerek en başta gelir. Seçimini, modüllerin bağımlı olduğu her şeyi kapsayacak şekilde genişletir; ön koşullar önce açılacak biçimde sıralar; senin adına neyi eklediğini söyler; ve bir döngü, bir çakışma, bilinmeyen bir id ya da karşılayamadığı bir sürüm varsa yarısını kurmak yerine kümenin tamamını reddeder.

Bir Postgres advisory lock iki kurulumun yarışmasını engeller, registry üretimi başarısız olursa dosya sistemini geri alır; yani "yarısı çalışmış kurulum" diye bir şey yoktur.

Etkinleştirme ve kapatma

Bir modülü görünür yapan şey etkinleştirmedir. Kapatmak onu bütün yüzeylerden aynı anda kaldırır: sayfaları 404 verir, yönetim ekranları sidebar'dan çıkar, navigasyon girdileri gider, hook'ları tetiklenmez. Verisine dokunulmaz ve tabloları olduğu gibi kalır.

Bunun tek doğruluk kaynağı veritabanındaki ModuleConfig.enabled alanıdır. Başka hiçbir şey buna karar vermez.

Kaldırma

Dosyalar gider, yapılandırma satırı gider. İki şey bilerek kalır: modülün veritabanı tabloları, ve bir yöneticinin elle düzenlediği çeviriler.

Bunun sebebi, yeniden kurulumun verisini bıraktığı yerde bulması. Kaldırmak silmek değildir; tabloların gitmesini istiyorsan, neyi düşürdüğünü bilerek kendin düşürürsün.

Bağımlılıklar ve sürümler

Manifest, çekirdeğin modüle bakan API sürümü üzerinde bir semver aralığı olan coreVersion bildirir ve başka modülleri de aynı şekilde sabitleyebilir: "store@^2.1.0" gibi.

Kurulum, güncelleme ve etkinleştirme bu aralıkları kontrol eder ve sonradan çalışma anında patlamak yerine baştan reddeder. Store modülüne ihtiyaç duyan bir ödeme sağlayıcısı, o olmadan etkinleşmez; ve olmayan bir şey için ayar sayfası çizmek yerine bunu söyler.

Kendi modülünü yüklemek

Yönetim, sonra Modüller, sonra bir ZIP yükle. Marketplace modülüyle aynı kontrollerden geçer: yol aşımı, ayrılmış id'ler, manifest şeması, id ile klasörün eşleşmesi, ve modül klasörünün dışını gösteren dosya referansları. Bir modül manifesti makinenin dışından gelir; o yüzden güvenilecek bir şey değil, doğrulanacak bir şey olarak ele alınır.