Basit ve net bir açıklama (Magento U'nun temelleri kursundan):
Zor bağımlılık
Bir modülün bağlı olduğu diğer modüller olmadan çalışamayacağı anlamına gelir.
Zor bağımlılıklara örnek olarak şunlar verilebilir:
- Modül , doğrudan başka bir modülden (örnekler, sınıf sabitleri, statik yöntemler, ortak sınıf özellikleri, arayüzler ve özellikler) mantığı kullanan bir kod içerir .
- Modül , sınıf adları, yöntem adları, sınıf sabitleri, sınıf özellikleri, arabirimler ve başka bir modülün özelliklerini içeren dizeler içerir.
- Modül , başka bir modülde bildirilen bir nesnenin serileştirilmesini kaldırır.
- Modül , başka bir modül tarafından kullanılan veritabanı tablolarını kullanır veya değiştirir.
Magento_AdminNotification
bağımlılığı zor Magento_Store
Yumuşak bağımlılık
Bir ima modül olabilir varlığını dayandırdığı diğer modüllere olmadan çalışır.
Yumuşak bağımlılıklara örnek olarak aşağıdakiler verilebilir:
- Modül doğrudan başka bir modülün kullanılabilirliğini kontrol eder.
- Modül , başka bir modülün yapılandırmasını genişletir.
- Modül , başka bir modülün düzenini genişletir.
Magento_AdvancedPricingImportExport
böyle bir Magento_CatalogImportExport
kod ile yumuşak bir bağımlılığı vardır :
if (!$model instanceof \Magento\CatalogImportExport\Model\Export\Product\Type\AbstractType) {
throw new \Magento\Framework\Exception\LocalizedException(
__(
'Entity type model must be an instance of'
. ' \Magento\CatalogImportExport\Model\Export\Product\Type\AbstractType'
)
);
}
Bir modül başka bir modülün kodunu kullanıyorsa, bağımlılığı açıkça bildirmelidir.
EDIT: bunun resmi dokümanda da açıkça açıklandığını fark ettim: https://devdocs.magento.com/guides/v2.3/architecture/archi_perspectives/components/modules/mod_depend.html