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

- Source canonique : [https://allaux.fr/tr/prestashop/migration/passer-a-php-8](https://allaux.fr/tr/prestashop/migration/passer-a-php-8)
- Langue : TR
- Dernière mise à jour : 2026-09-30

## Doğrudan yanıt

> 1.7 dalının hiçbir sürümü PHP 8 altında çalışmaz; en fazla PHP 7.4’e çıkan 1.7.8 dahil. Bu yüzden PHP sürümünü değiştirmeden önce PrestaShop’u 8 ya da 9 sürümüne taşıyın, asla tersini yapmayın. PrestaShop 8 en az PHP 7.2.5 ister ve 8.0 ile 8.2 arasını destekler; PrestaShop 9 en az PHP 8.1 ister. Ardından her üçüncü taraf modülü tek tek doğrulanmalıdır.

## 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ü.

| Valeur | Description |
|---|---|
| 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 |

Source : 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.

## Eski bir PHP sürümünde kalmak kalıcı bir çözüm değil

> Bir barındırma, bir PHP sürümünü kaldırıyorsa bunun nedeni, dilin kendi geliştiricilerinin artık o sürümün bakımını yapmamasıdır. Orada kalmak, barındırma bir süre daha tolere etse bile, hiçbir zaman düzeltilmeyecek güvenlik açıklarına maruz kalmak demektir.

## 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ı. ([/prestashop/migration/1-7-vers-8](/prestashop/migration/1-7-vers-8))
- **Uyumsuz eklentiler** — Yeni sürüme geçmeyen eklentileri nasıl tespit edip değiştirebileceğiniz. ([/prestashop/migration/modules-incompatibles](/prestashop/migration/modules-incompatibles))
- **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. ([/prestashop/migration/changer-d-hebergeur](/prestashop/migration/changer-d-hebergeur))

## FAQ

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