PrestaShop 8.0’dan 8.2’ye: 8.1 Vue 2’yi Vue 3’e taşır
PrestaShop 8.0’dan 8.2’ye geçmek küçük bir güncelleme gibi görünür: aynı ana dal, aynı varsayılan tema, aynı veritabanı yapısı. Bu yanıltıcıdır. Aralarında, yönetim panelini Vue.js 2.6’dan Vue.js 3.2’ye taşıyan 8.1 sürümü bulunur — ve özel JavaScript’i bozan tam olarak budur.
8.0 ile 8.2 arasında gerçekte ne değişiyor
PrestaShop 8.0 en az PHP 7.2.5 gerektirir ve PHP 8.0 ile 8.1 desteğini ekler. Zaten taşınmış sayfaların JavaScript’i TypeScript ile yazılmıştır ve PHP 8.1 uyumluluğu nedeniyle birçok metot artık bir dönüş tipi bildirir.
Aralarında, haziran 2023’te yayımlanan 8.1 sürümü bulunur: yönetim panelinde Vue.js’i 2.6’dan 3.2’ye taşıyan, müşteri sayfasına çoklu mağaza uyumluluğu ekleyen ve yeni güvenlik özellikleri getiren sürüm budur. Eylül 2024’te yayımlanan PrestaShop 8.2 ise PHP 8.2’nin tam desteğini, performans ve güvenlik düzeltmeleriyle birlikte getirir. 8.2.x dalı, 8 serisinde kritik hata ve güvenlik açığı düzeltmeleri almaya devam eden tek daldır; yayıncı bu takip için bir bitiş tarihi açıklamadı.
Kâğıt üzerinde 8.0’dan 8.2’ye geçiş aynı ana dal içinde kalır: numaralandırma küçük bir güncelleme izlenimi verir. Ancak pratikte bu yol, bileşenlerini doğrudan işleyen her şey için ana sürümler arasında uyumlu olmayan Vue.js’in ana sürüm değişikliğinden geçer.
"Küçük" bir güncelleme neden yönetim panelini bozuyor
Vue 2 ve Vue 3, bileşen tanımlama ve işleme için aynı iç API’yi paylaşmaz. Doğrudan Vue 2 bileşenlerine dayanan özel bir widget veya bir sekme ekleyen bir eklenti, yönetim paneli Vue 3’e geçtiğinde çalışmayı durdurur: bu bir yapılandırma sorunu değildir, Vue 2’yi işleyen kod için doğrudan bir karşılık artık yoktur.
Bu, sürüm çiftini basit bir güvenlik güncellemesinden ayıran şeydir: sürüm numarası küçük bir değişiklik izlenimi verir, ama 8.1’den geçiş, yönetim arayüzüne dokunan her geliştirme için gerçek bir teknik kırılma taşır.
Katalog, siparişler ve ön yüz tarafında ise etki genellikle düşüktür. Veritabanı yapısı 8.0 ile 8.2 arasında değişmez ve genel tema bu değişiklikten etkilenmez. Risk, yönetim JavaScript’i ve ona doğrudan dokunan eklentilerde yoğunlaşır.
8.1 ve ardından 8.2’den geçerken bir özelleştirmenin bozulacağının işaretleri
- Bir eklenti, Vue.js bileşenlerini doğrudan işleyerek özel bir sekme veya widget ekliyor.
- Özel bir geliştirme, resmi bir PrestaShop uzantı noktası yerine Vue 2’nin iç API’sini (options API, mixin’ler) çağırıyor.
- Eklenti, 8.1’in yayımlandığı haziran 2023’ten beri güncellenmemiş.
- Eklentinin belgeleri 8.0’ın ötesinde herhangi bir uyumluluk belirtmiyor.
Küçük görünen bu geçişi nasıl yürütüyorum
-
Yönetim paneli özelleştirmelerinin denetimi
Yönetim arayüzüne dokunan eklenti ve özel geliştirmeleri tespit ediyorum: eklenen sekmeler, widget’lar, özel JavaScript.
-
Dosyaların ve veritabanının yedeklenmesi
Autoupgrade’in <yönetim-klasörü>/autoupgrade/backup içine kendi aldığı yedeğe ek olarak, herhangi bir işlemden önce tam yedekleme yapıyorum.
-
Mağazanın kopyası üzerinde geçiş
Kopyayı autoupgrade ile önce 8.1’den, sonra 8.2’den geçiriyorum; bir özelleştirmenin hangi adımda durduğunu belirlemek için.
-
Güncellemenin çalıştırılması
İşlemin geri dönüşü olmayan noktası: autoupgrade onayladıktan sonra, geri dönmek adımı iptal etmek değil, tam yedeği geri yüklemek anlamına gelir.
-
Bozulan yönetim JavaScript’inin düzeltilmesi
Vue 2 bileşenlerini işleyen özelleştirmeleri Vue 3’e uyarlamak için yeniden yazıyorum, mümkün olduğunda resmi bir uzantı noktasıyla değiştiriyorum.
-
Doğrulama ve geçiş
Üretimi devreye almadan önce öncelikle yönetim panelini (sekmeler, widget’lar, formlar), ardından katalog ve siparişleri kontrol ediyorum.
Daha fazlası için
-
Her geçişten önce kontrol listesi
Hedef sürüm ne olursa olsun, geçişe başlamadan önce kontrol edilmesi gerekenler.
-
Uyumsuz eklentiler
Olduğu gibi geçiş yapamayacak bir eklentiyi nasıl tespit ettiğim ve onu neyle değiştirdiğim.
-
PHP 8’e geçiş
Güncel bir geçişe sıklıkla eşlik eden PHP yükseltmesi.
-
PrestaShop 8’den 9’a geçiş
8.2 stabil hâle geldikten sonraki adım: Symfony 6.4’e geçiş ve kalan legacy denetleyicilerin kaldırılması.
İhtiyacınızı bir dakikada anlatın
Size bir anket daha değil, doğrudan bir tahmin sunabilmem için birkaç hedefli soru.