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

PrestaShop’u PHP 8’e taşımak

PrestaShop 1.7 ailesinin hiçbir sürümü, 1.7.0’dan 1.7.8’e kadar, PHP 8’de çalışmaz. Bir barındırma sağlayıcısı PHP 7’yi teklifinden aşamalı olarak kaldırdığında, hâlâ 1.7’de olan bir mağaza basit bir ayardan çok farklı bir seçimle karşı karşıya kalır: PrestaShop sürümünü taşımak ya da artık bakımı yapılmayan bir PHP sürümünde kalmak.

Sorunumu anlatayım Mesaj gönderin

Bunun neden asla barındırma tarafında bir ayar olmadığı

Bir PrestaShop 1.7 kurulumunda barındırma ayarlarından PHP 8’i zorlamak işe yaramaz: 1.7’nin kullandığı şablon motoru olan Smarty anında çöker. Ailenin en yeni sürümü olan 1.7.8, en fazla PHP 7.4’ü destekler. Dolayısıyla PrestaShop 1.7 ile PHP 8 arasında mümkün hiçbir kombinasyon yoktur: bu ayarlanacak bir yapılandırma sorunu değil, sürümün kodu ile onu çalıştıran dil arasındaki temel bir uyumsuzluktur.

Uyumluluk, PHP 8.0 ve 8.1 desteğini getiren PrestaShop 8.0 ile başlar; bu sürüm için gereken minimum PHP 7.2.5’tir. Eylül 2024’te yayımlanan PrestaShop 8.2, PHP 8.2 için tam destek ekler. Daha yeni olan PrestaShop 9.0 ise en az PHP 8.1 gerektirir ve PHP 8.2, 8.3 ile 8.4’ü destekler. Dolayısıyla PHP 8’e geçmek, sunucu yapılandırması gündeme gelmeden önce, öncelikle PrestaShop’un kendisinin en az sürüm 8’e taşınmasını gerektirir.

Konu PrestaShop sürümüyle sınırlı kalmıyor

PrestaShop’un kendisi PHP 8 ile uyumlu hale geldiğinde iş bitmiş olmuyor. Birçok eski eklenti, dizilere veya karakter dizilerine erişmek için süslü parantez sözdizimini kullanır, örneğin $array[0] yerine $array{0}. Bu sözdizimi PHP 8’de kaldırılmıştır ve bir eklenti hâlâ kullanıyorsa ölümcül bir hataya yol açar. Bu nedenle her üçüncü taraf eklentinin, kurulu PrestaShop sürümüyle resmi uyumluluk beyanından bağımsız olarak tek tek kontrol edilmesi, gerektiğinde düzeltilmesi gerekir: bir eklenti kendini PrestaShop 8 ile uyumlu ilan ederken hâlâ bu tür eski sözdizimini içeriyor olabilir.

Bu yüzden geçiş iki ayrı aşamada gerçekleşir: önce PrestaShop sürümü, ardından yalnızca beyan edilen değil gerçek PHP 8 uyumluluğunun eklenti eklenti kontrolü.

  • 1.7.0 → 1.7.8 hiçbir sürüm PHP 8’de çalışmıyor
  • PHP 7.4 PrestaShop 1.7.8’in desteklediği en yeni PHP sürümü
  • PrestaShop 8.0 minimum PHP 7.2.5, PHP 8.0 ve 8.1 desteğiyle; PHP 8.2 desteği 8.2 sürümünden itibaren
  • PrestaShop 9.0 minimum PHP 8.1, PHP 8.4’e kadar destek

Resmi PrestaShop belgeleri

Nasıl ilerliyorum

  1. Mevcut PrestaShop sürümünü kontrol etmek

    Kurulu sürümü belirlerim ve barındırmanın ilan ettiği sürümlerle değil, o sürümün gerçekten desteklediği PHP sürümleriyle karşılaştırırım.

  2. Önce PrestaShop’u taşımak

    Mağaza hâlâ 1.7’deyse, üretim sunucusuna dokunmadan bir test kopyası üzerinde en az sürüm 8’e taşırım.

  3. Ortamı kopyalayıp PHP 8’i zorlamak

    Bu kopya üzerinde, üretime geçmeden önce gerçek hataları görmek için çalıştırmayı PHP 8’e yönlendiririm.

  4. Her üçüncü taraf eklentiyi kontrol etmek

    Kurulu eklentileri gözden geçiririm, süslü parantezle dizi erişimi gibi eski sözdizimlerini tespit ederim ve engelleyen her şeyi düzeltir ya da değiştiririm.

  5. Doğrulandıktan sonra üretime geçmek

    Barındırma tarafında PHP 8’e geçiş, ancak kopya üzerinde tam doğrulama yapıldıktan sonra gerçekleşir, asla öncesinde değil.

Barındırmanızın bir PHP sürümünü kaldırmayı planlayıp planlamadığını anlamak

Bir barındırmanın bir PHP sürümünü kaldırması neredeyse her zaman önceden duyurulur, genellikle e-posta yoluyla veya barındırma yönetim panelinde görünen bir bildirimle. Bu duyurular genellikle sürümün değiştirilmesi gereken bir son tarih belirtir. Değişikliğin bir gecede dayatılmasını beklemek yerine, PrestaShop’u iyi koşullarda taşımak için kullanılması gereken süre işte bu süredir.

Devamı 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

Barındırmamdan 1.7’deki mağazamda PHP 8’i etkinleştirmesini isteyebilir miyim?
Hayır. PrestaShop 1.7’nin hiçbir sürümü PHP 8’de çalışmaz, Smarty anında çöker. PHP 8’i düşünmeden önce PrestaShop’un en az sürüm 8’e taşınması gerekir.
PrestaShop sürümüme göre hangi PHP sürümünü hedeflemeliyim?
Ailenin en yeni sürümü olan PrestaShop 1.7.8, PHP 7.4 ile sınırlıdır. PrestaShop 8, minimum PHP 7.2.5 kabul eder; PHP 8.0, 8.1 ve 8.2 sürümünden itibaren PHP 8.2 desteği sunar. PrestaShop 9 en az PHP 8.1 gerektirir ve PHP 8.4’e kadar destekler.
PrestaShop taşındıktan sonra eklentilerim otomatik olarak PHP 8’de çalışır mı?
Kesin değil. Bazı eski eklentiler, PHP 8’de kaldırılan süslü parantezle dizi erişimi sözdizimini kullanır. Kurulu PrestaShop sürümüyle uyumlu olduğunu beyan etse bile, her eklentinin ayrı ayrı kontrol edilmesi gerekir.
Barındırmamın yakında PHP 7’yi kaldıracağını nasıl anlarım?
Bu tür bir kaldırma genellikle önceden duyurulur; e-posta yoluyla veya barındırma yönetim panelindeki bir bildirimle, belirtilen bir son tarihle birlikte.
Canlı mağazayı riske atmadan PHP 8 uyumluluğunu nasıl test edebilirim?
Mağazanın tam bir kopyası üzerinde çalışırım, çalıştırmayı PHP 8’e zorlayarak gerçek hataları görür ve üretim sunucusundaki herhangi bir geçişten önce engelleyen sorunları düzeltirim.