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

PrestaShop 8’den 9’a: legacy denetleyicilerin sonu, Admin API

PrestaShop 8’den PrestaShop 9’a geçmek bir ana sürüm değişikliğidir: yönetim paneli tamamen Symfony 6.4 üzerine taşınır, kalan legacy denetleyiciler ortadan kalkar ve yönetim erişimi yeni bir API’ye açılır. Bu, hazırlıksız bir cuma akşamı çalıştırılacak bir güncelleme değildir.

Sorunumu anlatayım Mesaj gönderin

PrestaShop 8 ile 9 arasında gerçekte ne değişiyor

PrestaShop 8.x, taşınmış sayfalarda kısmen Symfony 4.4 üzerinde çalışır; geri kalanı legacy denetleyicilerle işler. PrestaShop 9.0, Symfony sürümünü tamamen değiştirir: Symfony 6.4 LTS’ye geçilir. Yönetim paneli artık tamamen Symfony denetleyicileri ve Twig üzerine kuruludur: 8.x’te kalan son legacy denetleyiciler 9.0’da yoktur.

PHP tarafında, 9.0 en az PHP 8.1 gerektirir ve PHP 8.2, 8.3, 8.4’ü destekler; 8.1 dalı ise PHP 8.1’de duruyordu. Daha eski bir barındırmada, geçiş aynı anda bir PHP yükseltmesi de gerektirir.

9.0 ayrıca, eski Webservice API’den ayrı olarak, API Platform ve OAuth üzerine kurulu Admin API’yi tanıtır; ön yüzde de deneysel bir Symfony konteynerine erişim sunar. Tema tarafında Hummingbird’i tanıtır, ancak varsayılan tema Classic kalır: Classic kullanan bir mağazanın tema değiştirmesine gerek yoktur.

Bir eklentinin 9.0’da sorun çıkaracağının işaretleri

  • Eklenti, bir legacy denetleyiciye dayanarak yönetim paneline bir sekme veya widget ekliyor.
  • Eklenti belgeleri 9.0 uyumluluğundan bahsetmiyor, config.xml’deki <code>&lt;max&gt;</code> etiketi güncel değil.
  • Özel bir override, bir Symfony servisi yerine doğrudan legacy bir sınıf veya denetleyici çağırıyor.
  • Eklenti, dış entegrasyonlar (ERP, pazar yeri, fiyat karşılaştırma) için eski Webservice API’yi kullanıyor.

Bu unsurlar tam olarak neden bozuluyor

Kalan legacy denetleyicilerin kalkması en doğrudan sorundur: 8.x’te bunlardan birini hedefleyen bir eklenti veya override, çağırdığı rota veya sınıf artık olmadığı için 9.0’da hiçbir hedefe sahip değildir. Bu gevşek bir uyumluluk sorunu değil, doğrudan bir yokluktur.

Symfony’nin 4.4’ten 6.4’e sıçraması ikinci sürtüşme noktasıdır. Kendi Composer bağımlılıklarını bildiren bir eklenti, örneğin belirli bir sürüme sabitlenmiş bir kütüphane veya Symfony bileşeni, PrestaShop 9.0 çekirdeğinin kullandığı Symfony 6.4 ile çakışabilir. Bu çakışma genellikle eklenti çalışmadan, bağımlılıkların kurulumu sırasında ortaya çıkar.

Son olarak, uyumluluk bildirimi güncel olmalıdır: config.xml’deki <compatibility><min></min><max></max></compatibility> etiketleri ve ana PHP sınıfındaki $ps_versions_compliancy özelliği 9.0’ı kapsamalıdır. 9.0 için hiç güncellenmemiş bir eklenti, 8.x’te teknik olarak çalışsa bile, tanım gereği risklidir.

PrestaShop 8’den 9’a geçişi nasıl yürütüyorum

  1. Eklenti ve override denetimi

    Eklenti eklenti, config.xml ile $ps_versions_compliancy içindeki bildirilen 9.0 uyumluluğunu ve legacy denetleyicileri hedefleyen override’ları kontrol ediyorum.

  2. Herhangi bir denemeden önce tam yedekleme

    Autoupgrade’in geçiş sırasında kendi aldığı yedekten bağımsız olarak, dosyaların yedeğini ve veritabanının tam dışa aktarımını alıyorum.

  3. Mağazanın kopyası üzerinde geçiş

    Geçişi autoupgrade ile mağazanın bir kopyası üzerinde başlatıyorum, asla üretimde değil; bir süreye bağlanmadan önce gerçek hataları görmek için.

  4. Veritabanı geçiş betiğinin çalıştırılması

    İşlemin geri dönüşü olmayan noktası: autoupgrade şemayı 9.0 yapısına dönüştürdükten sonra, geri dönmek son adımı iptal etmek değil, tam yedeği geri yüklemek anlamına gelir.

  5. Bozulan eklenti ve override’ların düzeltilmesi

    Artık var olmayan bir legacy denetleyiciyi hedefleyen eklentileri değiştiriyor veya yeniden yazıyorum, denetimde tespit edilen Composer çakışmalarını çözüyorum.

  6. Doğrulama ve geçiş

    Üretime geçişi düşük trafikli bir zamana planlamadan önce test ortamında katalog, siparişler, müşteriler ve işlemsel e-postaları 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

9.0’a geçmek için PHP sürümünü de mi değiştirmem gerekiyor?
Barındırmanız 8.1’den eski bir PHP sürümünde çalışıyorsa evet: PrestaShop 9.0 en az PHP 8.1 gerektirir ve PHP 8.4’e kadar destekler. Geçişi planlamadan önce sağlayıcınızda mevcut sürümü kontrol ediyorum.
Yeni Hummingbird teması 9.0’da zorunlu mu?
Hayır. Hummingbird 9.0 ile tanıtılıyor ancak çıkışta varsayılan tema Classic olarak kalıyor. Zaten Classic kullanan bir mağazanın tema değiştirmesine gerek yok.
Geçişten sonra tüm eklentilerim çalışacak mı?
Otomatik olarak değil. Geçmeden önce config.xml içindeki bildirilen uyumluluğu eklenti eklenti kontrol ediyorum, 9.0’da artık var olmayan legacy denetleyicileri hedefleyenleri değiştiriyor veya yeniden yazıyorum.
Geçiş yarı yolda başarısız olursa ne olur?
Veritabanı güncellemesinden önce, autoupgrade’in kendi yedeğine ek olarak dosyaların ve veritabanının tam yedeğine sahip oluyorum. Adım onaylanmadan önce başarısız olursa geri yükleme hâlâ mümkündür.