Magento güncellemesini tahmin etmek, yapmak üzere olduğunuz kurulumda uygulanan değişiklikler hakkında bilgi toplama, bu değişikliklerin soruna neden olup olmayacağını kontrol etme ve daha sonra bunların etrafında çalışmak için ne kadar zamanın gerekli olduğunu değerlendirme sürecidir.
Tüm değişiklikler anlamıyla ayrılabilir dışı çekirdek ve in çekirdek .
Çekirdek dışı değişiklikler, yükseltme ile üzerine yazılmayacak değişikliklerdir. Bunlar, üçüncü taraf uzantıları , yerel kapsam içine yerleştirilen çekirdek dosyalar (app / code / local / Mage) ve özel bir tema .
Çekirdek içi değişiklikler doğrudan Magento çekirdek dosyalarına (app / code / core), yerelleştirme dosyalarına (app / locale / en_US), core şablonlarına ve javascript'ler , nadiren özelleştirilen harici kütüphaneler gibi bazı şeylere de uygulanır. .
Çekirdek Dışı Değişiklikler
3. Parti Uzantıları
Yükseltmeler sırasında 3. parti uzantıları, sorunların ana kaynağıdır. Bu, daha fazla uzantıya sahip olacağınız anlamına gelir, onları analiz etmeniz gerekecektir.
Kontrol edilmesi gereken ilk şey, uzantının sağladığı işlevselliğin henüz yükseltme yaptığınız Magento sürümünde uygulanmadığıdır. Örneğin , Magento 1.3.xx ve daha önceki sürümlerde olduğu gibi veya yaygın olarak kullanılan bazı uzantılar Yoast_CanonicalUrl
, ancak şimdi çekirdek Magento işlevselliğinin bir parçasıdır ve artık gerekli değildir.Mxperts_CustomerAddress
Fontis_Wysiwyg
Öyleyse, sahip olduğunuz tüm bu eklentilere gerçekten ihtiyacınız olup olmadığını kontrol etmek (müşterinize danışın) iyi bir fikirdir. Yüklediğiniz bazı uzantılar olabilir, ancak gerçekten kullanılmadı. Yani bu noktada bir çeşit temizlik yapmak iyi olur.
O zaman kontrol edilmesi gereken önemli bir şey, geriye kalan her bir uzantının, yükseltmekte olduğunuz Magento sürümüyle uyumluluğudır. Bazı uzantıların uyumlu olmaması ve benzer uzantıların bulunmaması durumunda, bazı işlevselliklerini kaybetme ya da mevcut uzantıları uyumlu hale getirmek için değiştirme konusunda zor bir seçeneğiniz olacaktır.
Not: 3. taraf uzantısını doğrudan değiştirmeyin, ancak eski olanı uzatacak yeni bir uzantı oluşturun ve ardından yeni uzantının önyükleme XML'inde bir bağımlılık ayarlayın.
Tüm yapılanlardan sonra kalan uzantıların her birinin gerçek analizi sağlanabilir. Her zaman etc/config.xml
dosyanın incelenmesi ile başlamalıdır . Aramanız gereken 3 şey var:
- Sınıf yeniden yazmaları tek başına temiz bir teknik değildir, ancak bazı durumlarda etrafta başka bir yol yoktur. Yani eğer yeniden yazılmış sınıf Magento'nun yeni sürümünde değiştirilmişse, bu potansiyel bir sorun olabilir.
- Mizanpaj güncellemelerinin yükseltme işleminizde bir soruna neden olması muhtemel değildir, ancak uzantı daha yeni bir Magento sürümünde kullanımdan kaldırılmış bir bloğa başvuruyorsa, bunun üzerinde çalışmanız gerekir.
- SQL güncellemeleri , yükseltme sırasındaki sorunların önemsiz olarak karşılandığı bir kaynaktır. Sorun, üçüncü taraf uzantısının, varsayılan Magento tablosundaki bazı alanlara başvuran yabancı bir anahtar oluşturması durumunda ortaya çıkar. Sonuç olarak, bu alan değişikliklerden kilitlendi. Ve eğer yerel kurulum betiği bu alanı güncellemeye çalışırsa, sessizce başarısız olacaktır. Bundan sonra, bu alana atıfta bulunulan her yükleme betiği yükseltme işleminizi çökertecektir.
Uygulama / kod / yerel / Mage
Uzantılarınızı tamamladıktan sonra app/code/local/Mage
dizine bir göz atın . Burada bir local
kapsam içine taşınan değiştirilmiş çekirdek dosyaları göreceksiniz . Bunların her biri kesinlikle bir miktar gri saça mal olacak çünkü hiçbir zaman (onları oraya yerleştiren siz olmasaydınız) orada neyin değiştirildiğini ve ne nedenle olduğunu asla bilemezsiniz. Bu nedenle, her birini bir kökenle karşılaştırmanız ve yeni sürümün ilgili dosyasına dosya eklenmiş işlevselliği geçirmeniz gerekir.
Özel tema
Çekirdek dışı yapılan son değişiklik özel tema. Bu önemli bir şey değil gibi görünebilir ama aslında bu gri bir alandır. Magento temel teması sürümden sürüme değiştiriliyor ve her özel temanın bu değişikliklerden bazılarını taklit etmesi gerekiyor. Ne yazık ki, neyin aranacağını ve neyin taşınacağını belirleyen gümüş kurşun yoktur. Bu yüzden sadece yükseltme işleminden sonra bazı büyük sürprizler ve küçük nitpicking için hazır olun.
Çekirdek Değişiklikleri
Mükemmel dünyada hiç yoktur. Ancak Magento kurulumunu yaptığınızda, üçüncü taraf geliştiriciler tarafından istismara uğradıktan sonra, ucuza çok şey teklif eden bir şey bekleyebilirsiniz. Bu yüzden içsel değişiklikler , yükseltme işlemi sırasında üzerine yazılacak olanlardır . Çoğu durumda herhangi bir hata üretmez ancak sonuç olarak böyle acımasız bir şekilde eklenen işlevselliği kaybedersiniz.
İçteki değişiklikleri tespit etmenin tek yolu, Magento kurulumunuzun tüm dosyalarını aynı sürümdeki temiz dosyalarla karşılaştırmaktır. Git ile yapmanı tavsiye ederim. Neden? Bunun nedeni tüm yeni satırları ve boşlukları güzel bir şekilde işlemesidir.
Magento kurulumunuz git altında olmasa bile, dosyalarınızı ayrı bir dizine kopyalayıp git init'i çalıştırabilirsiniz. Ardından ilk işlemi yapın, “temiz” Magento dosyalarını kopyalayın ve çalıştırın git status
. Böyle bir şey alacaksınız:
Şimdi, değiştirilmiş dosyaların sayısına bağlı olarak, git diff
her bir dosyada veya tüm partide aynı anda çalıştırabilirsiniz. Bu size yapılan tüm içsel değişikliklerin kapsamlı bir referansını verecektir. PhpStorm gibi herhangi bir git görselleştirmesi varsa, hayat sizin için çok daha kolaydır:
Bunu yapmayı öneririm git diff > changes.txt
, her zaman elle yapılan bir değişiklik listesi olacaktır.
Temel değişikliklerin listesine sahip olarak neyin yeni sürüme aktarılacağını ve bunun için ne kadar zamana ihtiyaç duyulacağını tahmin edebilirsiniz.
Şimdi gerçek bir yükseltme için bazı tavsiyeler vermek istiyorum. Bu işlem iyi belgelenmiştir, bu nedenle hangi komutları çalıştırıp nereye tıklayacağımı yazmam. Ancak birkaç önemli konuda aksan yapmak istiyorum:
- Geliştirme ortamınızda yükseltme yaptığınızı varsayıyoruz. Üretim sunucunuzda yükseltme yapmak bir intihardır.
- Siz yükseltme yaparken üretimde bir şeyleri değiştirmelerine izin vermeyin. Magento'nuzu sürüm kontrolü altına alın, hatta geçici kilitleme dosyalarının yazmasını engelleyin.
- 3. parti uzantılarının tümünü devre dışı bırakın ancak hangilerinin başlangıçta devre dışı bırakıldığını unutmayın, böylece daha sonra etkinleştiremezsiniz.
- Sunucuda çalışan bir Magento temizleme komut dosyası olup olmadığını kontrol edin. Aksi ile başlayan tüm tabloları kesecek
dataflow_*
, log_*
, report_*
.
- Yükseltme zamanında varsayılan temaya geri dönün.
Yükseltme komut dosyası tamamlandıktan sonra:
changes.txt
Göç etmeden önce yaptığınız atıfta, gerçekten taşımaya değer tüm temel değişiklikleri değiştirin.
- Geçiş
app/code/local/Mage
yükseltme önce bulunan modifikasyonlar.
- Tek tek 3. parti uzantılarını etkinleştirir.
- Temanızı geri alın ve sonucu üretim sunucusuyla kapsamlı bir şekilde karşılaştırın.
- Sonuçtan memnun kaldığınızda üretime dağıtın.
Sonuç
Bunun çok korkutucu geldiğini biliyorum ama düzenli olarak geliştiriyorsanız, çekirdeğinizi temiz tutar ve uzantıları yalnızca gerçekten güvendiğiniz satıcılardan yüklerseniz ve yalnızca gerçekten ihtiyacınız varsa, bu makalede açıklanan zorlukların çoğu ile karşılaşmazsınız. Magento EcoSystem'inizi sağlıklı tutun; ödüllendirileceksiniz.
Scriptum sonrası
Çok karmaşık durumlarda, en yeni Magento yüklemesiyle baştan başlamak ve adım adım mağaza temanızı ve işlevselliğinizi taşımak mantıklıdır. Bu kesinlikle zaman alacak ancak sonunda neler olup bittiğinin tam farkındalığınızla birlikte sağlıklı bir Magento sistemine sahip olacaksınız.