Magento sürümüne göre Composer aracılığıyla yüklenecek dosyayı seçin


11

Bir composer'd modülüne birden çok kod sürümü dahil etmek ve kurulum hedefinin Magento sürümüne bağlı olarak bestecinin hangi sürümü dağıtacağını bulmak çok uygun olacaktır.

Örneğin, Magento> 1.7 için tooltip, iç içe geçmiş groupve diğer modern özellikleri içeren system.xml dosyasını kullanın, ancak Magento'nun eski sürümleri için, bu (kırma) bildirimleri içermeyen soyulmuş bir sürümünü kullanın.

Bu yaklaşım, standart modül yapısındaki diğer birçok dosya için de işe yarayabilir.

Besteci dağıtım için seçenekler map, modmanya package.xmlhedef sistemi konusunda herhangi bir istihbarat var bunların hiçbiri AFAIK. package.xmlSeçenek değiştirmek çok olası değildir ama mapolabilir ...

Bana öyle geliyor ki, zarif bozulma yaklaşımından faydalanacak bir çok uzantı geliştiricisi olacak. Bunun için bir çözüm bulan var mı?

Yanıtlar:


8

Bir geçici çözümüm yok ve henüz benim için bir sorun değildi, ancak işe yarayabilecek bir teklifim var:

  1. Farklı Magento sürümlerini hedeflemek için ayrı sürüm dalları tutmanız gerekir. Bazı besteci sihirlerine bağlı olarak farklı sürümleri aynı sürümde dağıtmak işe yaramayacaktır. Bu nedenle, yok edişinizin 1.xeski Magento sürümleriyle uyumluluk için bir dalı (örneğin 1.6'ya kadar) ve 2.xdaha modern sürümler için bir dalı olabilir. Sürüm etiketlerini buna göre ekleyin. Tabii ki istediğiniz kadar dal koruyabilir ve her Magento sürümü için en iyi kodu yazabilirsiniz, ancak IMHO bu çabaya değmez ve bir "modern" ve bir "eski" dal yeterli olacaktır. Size kalmış, ne kadar geriye "modern" dal ile uyumlu olmak istediğiniz, hatta en son küçük sürüm olabilir.
  2. Magento için böyle bir gereksinim ekleyin:

    "require": {
        "magento/magento-ce": "1.4-1.7"
    }

    ve

    "require": {
        "magento/magento-ce": ">=1.8"
    }
  3. Şimdi dezavantajı, artık tam etkinizin olmadığı kısım: Resmi bir magento/magento-cepaket yok , bu nedenle uzantınızın kullanıcıları muhtemelen Magento'yu https://github.com/firegento/magento gibi bir topluluk tarafından yönetilen aynadan kuracak -ce veya kendi havuzundan. Bunlar , aynı sürümün "sanal" paketinin yerini almalıdır magento/magento-ce( her sürüm güncellemesi için composer.json dosyasını ayarlamanız gerekmez) bir yer tutucu self.version vardır :

    "replace": {
        "magento/magento-ce": "self.version"
    }

Bu, yalnızca yukarıdaki sözleşmenin geniş çapta kabul görmesi ve sadece Magento'nun kendisini besteci bağımlılığı yoluyla yükleyen kullanıcılar için iyi olur, ki bu muhtemelen çoğunluk değildir.

Bu yüzden daha gerçekçi bir yaklaşım, 1. adımı izlemeniz ve kullanıcılarınıza 1.x'ten daha eski bir Magento sürümü çalıştırmaları durumunda farklı bir şube / farklı ana sürüm gerektirmelerini tavsiye etmektir.

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.