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.
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
-
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.
-
Ö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.
-
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.
-
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.
-
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
-
1.7’den 8’e geçiş
PrestaShop 1.7 ile 8 arasında gerçekte neyin değiştiğinin ayrıntısı.
-
Uyumsuz eklentiler
Yeni sürüme geçmeyen eklentileri nasıl tespit edip değiştirebileceğiniz.
-
PrestaShop geçişiyle barındırma değiştirmek
Sürüm geçişini barındırma değişikliğinden neden çoğu zaman ayırmak gerektiği.
İhtiyacınızı bir dakikada anlatın
Size bir anket daha değil, doğrudan bir tahmin sunabilmem için birkaç hedefli soru.