Projeler ve ajans desteği için müsait · Hızlı yanıt, işi yapan kişiden

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.

Sorunumu anlatayım Mesaj gönderin

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

İhtiyacınızı bir dakikada anlatın

Size bir anket daha değil, doğrudan bir tahmin sunabilmem için birkaç hedefli soru.

version-depart
version-arrivee
catalogue
modules-tiers (facultatif)
conserver (facultatif)
Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.

Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.

Sıkça sorulan sorular

8.0’dan 8.2’ye gibi küçük bir güncelleme neden bir şeyi bozar?
Çünkü aralarında, yönetim panelini Vue.js 2.6’dan Vue.js 3.2’ye taşıyan 8.1 sürümü bulunur. Sürüm numarası aynı ana dalda kalır, ama bu framework değişikliği, doğrudan Vue 2 bileşenlerini işleyen özelleştirmeleri gerçekten bozar.
Katalogum veya siparişlerim için endişelenmeli miyim?
Genellikle hayır: veritabanı yapısı 8.0 ile 8.2 arasında değişmez ve genel tema etkilenmez. Risk yönetim tarafında yoğunlaşır.
8.1’den geçmeden doğrudan 8.0’dan 8.2’ye geçebilir miyim?
Autoupgrade ardışık güncellemelerin sırasını kendisi yönetir. Yine de, 8.1’den geçerken hiçbir özelleştirmenin bozulmadığını doğrulamak için bir kopya üzerinde test ediyorum.
Yönetim için riskliyse 8.2’ye neden geçeyim?
Çünkü 8.2.x, 8 serisinde kritik hata ve güvenlik açığı düzeltmeleri almaya devam eden tek daldır. 8.0’da kalmak düzeltilmemiş açıklara maruz kalmak demektir; bu genellikle birkaç yönetim özelleştirmesini düzeltmekten daha büyük bir risktir.