Magento'da özel bir modül oluştururken, bazen sistemde özel öznitelikler oluşturmanız gerekir. Tipik olarak, ilgili modülü kurulum modelimle genişletirim veya sadece Mage_Core_Model_Resource_Setup dosyasını genişletirim. Modülümün, belirli modellere öznitelikler eklemesi ve özel kurulum modellerini (örn. Eav veya satış) gerektirmesi gerekiyorsa, o zaman buradaki en iyi uygulama hangisidir? Kendi kurulum modelimi tanımlamayı düşünüyorum: MyCompany_MyModuel_Reseource_Setup (1.6 + için) ve daha sonra sql kurulum dosyamda sadece gerekli kurulum modellerini yaratıyorum. Bu en iyi yaklaşım mı?Magento - özel modül için gerekli çoklu kurulum modelleri
cevap
Bu sizin modülün dosyalarında diğer modül kurulum dosyalarını kullanmak tamamen kabul (ve uygun) var:
$otherSetup = Mage::getResourceModel('catalog/setup','default_setup');
$otherSetup->addAttribute(...);
Özellikle yeni özelliklerini yükleme durumunda, her modül idare edecek işletmeye özgü nitelik varsayılan vardır Sizin için (bkz. _prepareValues()
yöntemleri).
Bu, elbette modülünüzün kurulum sınıfı örneğinde yürütülür, ancak bu bir tamam.
DÜZENLEME: Sorunuzu yeniden okudum ve sorduğun şeyi tamamen kapattığımdan emin değilim. Yine de bilgiler biraz geçerlidir, bu yüzden burada bırakırım. Ancak, sorunuzu mevcut varlıklar için özellik eklemeye yönelik en iyi uygulamalarla ilgili olduğunu düşünüyorum. Özellikle bu noktada, EAV veya başka şeylere özellik eklemek için kurulum kaynaklarını kullanmak kesinlikle kabul edilebilir. Bu amaçla Mage_Eav_Model_Entity_Setup::addAttribute()
gibi işlevler kullanabilir veya tabloları gerektiği gibi SQL sorgularıyla değiştirmek için Mage_Core_Model_Resource_Setup::run()
kullanabilirsiniz.
Orjinal cevap:
Aynı modülü içinde birden fazla kaynak kullanmak mümkündür, bu nedenle bu ne istediğini yapmaya yeterli olmalıdır.
Aslında oldukça basittir, sadece iki kurulum kaynağı tanımlayın ve Magento her ikisini de çalıştıracaktır. senin config.xml'de
:
<config>
...
<global>
...
<resources>
<!-- Resource 1 -->
<mymodule_setup>
<setup>
<module>MyCompany_MyModule</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</mymodule_setup>
<mymodule_write>
<connection>
<use>core_write</use>
</connection>
</mymodule_write>
<mymodule_read>
<connection>
<use>core_read</use>
</connection>
</mymodule_read>
<!-- Resource 2 -->
<mymodule2_setup>
<setup>
<module>MyCompany_MyModule</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</mymodule2_setup>
<mymodule2_write>
<connection>
<use>core_write</use>
</connection>
</mymodule2_write>
<mymodule2_read>
<connection>
<use>core_read</use>
</connection>
</mymodule2_read>
</resources>
...
</global>
...
</config>
Ardından gerekli/install kurulum modelini genişleterek
app/code/local/MyCompany/MyModule/sql/mymodule_setup
ve
app/code/local/MyCompany/MyModule/sql/mymodule2_setup
Hatta yükleyici için kendi işlevlerini ekleyebilirsiniz dosyaları yükseltme içerir.
<class>MyCompany_MyModule_Entity_Setup</class>
ve şöyle app/code/local/MyCompany/MyModule/Entity/Setup.php
bir dosya oluşturmak: Yani
<?php
class MyCompany_MyModule_Entity_Setup extends Mage_Eav_Model_Entity_Setup
{
}
böyle
<resources>
<mymodule2_setup>
<setup>
: Sen bir sınıf etiketi ekleyerek bunu Şüphelendiğiniz gibi, Mage_Core_Model_Resource_Setup veya Mage_Eav_Model_Entity_Setup'ı genişletmeniz gerekecek (Eav).
- 1. Bir alan için çoklu değerlerle ray modelleri
- 2. angularjs modelleri, çoklu $ kapsamları ve
- 3. Magento kurulum komut dosyasında öznitelik kümesi oluştur
- 4. Çoklu oturumlu logit modelleri ve iç içe geçmiş logit modelleri
- 5. Phalcon çoklu modül çalışmıyor
- 6. Django modelleri, özel işlevler
- 7. Magento Özel Caching yönetici anahtarı
- 8. Kurulum komut dosyasını kullanarak Magento'da özel ürün özellikleri ekleme
- 9. Diğer modüller için Phalcon çoklu modül yolları
- 10. Magento özel blokları
- 11. React native Gerekli Özelleştirilmiş bileşen için Bilinmeyen Modül
- 12. Özel Modülde Göndermeyen Magento Formları
- 13. Magento modülünün kurulumu - ürün özelliğini değiştirmek için gerekli değil
- 14. Magento öğreticisi Arka uç için bir modül oluşturun (yönetici sayfası)
- 15. Yay önyükleme maven çoklu modül
- 16. Özel Çoklu Dil desteği
- 17. Prestashop 1.6.1.4 - Özel modül için tanımlanmamış sabit
- 18. zend özel modül
- 19. Magento değişim Özel Seçenek değeri arabası
- 20. Junit çoklu kurulum ve tek test
- 21. Magento: modelleri, kaynak modelleri ve koleksiyonları temel kavramlarını açıklamak ve ilişki birbirlerine sahip
- 22. Magento özel admin modülü boş
- 23. Magento Özel Seçenekler VS Öznitelikleri
- 24. Magento: Karşılıklı çoklu kategorilerden ürün koleksiyonu
- 25. Procfile gunicorn özel modül adı
- 26. maven çoklu modül projesi için güncelleme konumu scm url
- 27. Özel şablon oluşturmak için xcode 4.5
- 28. Intellij'de Maven Çoklu Modül Projesi Nasıl Oluşturulur?
- 29. Magento
- 30. Kurulum: Reportlab: "ImportError: Hayır modül adlı reportlab.lib" Ben reportlab yükledim
Bu beni birçok kez ısırdı. Eklemekte olduğunuz varlık türü için doğru kaynak modelini kullandığınızdan emin olun! –