Selam dostlar, uzun süredir forumu takip ediyorum ama ilk kez konu açıyorum. Benim eski bir web sitem var, hâlâ PHP 5.6 üzerinde çalışıyor ve sunucu sağlayıcım yakında PHP 7.4'e geçmem gerektiğini söyledi, aksi halde güvenlik güncellemeleri alamayacağımı belirtti. Siteyi elle kodladım, framework kullanmıyorum, düz PHP ile MySQL sorguları yapıyorum. mysql_* fonksiyonlarını kullandığımı biliyorum, bunların kaldırıldığını da duydum ama tam olarak neler değişiyor, hangi kodları güncellemem gerekiyor? Ayrıca eski hosting panelimde PHP 5.6 seçeneği varken, yeni sürümde bazı ayarlar farklı olacak mı? Yani php.ini ayarları, hata raporlama gibi şeyler. Kısacası, geçiş sürecinde beni ne gibi sürprizler bekliyor, nelere dikkat etmeliyim? Tecrübeli arkadaşlar yardımcı olursa çok sevinirim. Şimdiden teşekkürler.
PHP 5.6'dan PHP 7.4'e Geçerken Dikkat Edilmesi Gerekenler?
Cevaplar (4)
31.07.2026 19:16
Merhaba bytecoder60, hoş geldin. PHP 5.6'dan 7.4'e geçiş yapmak aslında büyük bir adım ama yönetilebilir. Öncelikle en büyük değişiklik, mysql_* fonksiyonlarının tamamen kaldırılmış olması. Bunların yerine mysqli veya PDO kullanman gerekiyor. Eğer kodların çok eskiyse, otomatik bir dönüştürme aracı yok, elle değiştirmen gerekecek. Ayrıca PHP 7'de hata raporlama davranışı değişti; artık birçok uyarı (E_NOTICE, E_WARNING) exception'a dönüştü veya daha sıkı hale geldi. Özellikle tanımsız değişkenler, dizinler gibi şeyler artık daha fazla uyarı verecek. php.ini'de `error_reporting` ayarını `E_ALL` yapıp, geliştirme ortamında tüm hataları görmek iyi olur. Ayrıca `short_open_tag` varsayılan olarak kapalı, eğer `<?` kullanıyorsan `<?php` yapmalısın. Son olarak, `create_function()` gibi bazı fonksiyonlar kaldırıldı, onları da kontrol et. Bol şans!
31.07.2026 19:49
bytecoder60 yazdı:
mysql_* fonksiyonlarını kullandığımı biliyorum, bunların kaldırıldığını da duydum ama tam olarak neler değişiyor, hangi kodları güncellemem gerekiyor?
Aynen, mysql_* fonksiyonları PHP 7.0'da tamamen kaldırıldı. Ben de bir zamanlar bu geçişi yaptım, sana tavsiyem PDO kullanman. PDO, hem daha güvenli (prepared statements ile SQL injection'a karşı koruma) hem de farklı veritabanlarına geçişte kolaylık sağlar. Örnek vermek gerekirse, `mysql_query` yerine `mysqli_query` veya PDO'da `$pdo->query()` kullanıyorsun. Ayrıca PHP 7.4'te `real_escape_string` gibi şeyler de artık önerilmiyor, parametreli sorgular şart. Diğer önemli bir nokta, PHP 7.4'te `array_key_exists` yerine `isset` kullanımı bazı durumlarda farklı davranabilir, özellikle `null` değerlerde. Kodunu gözden geçirirken bu tür ince ayrıntılara dikkat et. Geçiş öncesi sitenin yedeğini almayı unutma, ve bir test ortamında dene.
31.07.2026 20:34
Selam bytecoder60, ben de eklemek istiyorum. PHP 7.4'e geçerken dikkat etmen gereken bir diğer şey, `magic_quotes` ve `register_globals` gibi eski ayarların tamamen kaldırılmış olması. Eğer kodun bu ayarlara güveniyorsa, baştan yazman gerekebilir. Ayrıca `session_start()` artık başlık gönderilmeden önce çağrılmalı, zaten öyleydi ama daha katı. `header()` fonksiyonundan önce çıktı olmamalı. Hata mesajları artık daha ayrıntılı, `TypeError` gibi exception'lar fırlatılıyor. Özellikle fonksiyonlara yanlış tipte parametre verirsen bu hatayı alırsın. Bence en iyi yöntem, sitenin tamamını tarayacak bir kod analiz aracı kullanmak. Mesela PHPStorm veya bir CLI aracı olan `phpcs` ile eski fonksiyonları tespit edebilirsin. Ayrıca hosting panelinde PHP 7.4 seçeneğini seçtikten sonra siteni hemen test et, çünkü bazen sunucu tarafında `opcache` ayarları farklı olabilir, performans artışı yaşarsın ama uyumsuzluklar da çıkabilir.
31.07.2026 22:04
Herkese çok teşekkür ederim, gerçekten işime yaradı. Sonunda geçişi yaptım, tüm mysql_* fonksiyonlarını mysqli ile değiştirdim, hata raporlamayı ayarladım ve sitenin tamamını test ettim. Birkaç ufak sorun çıktı ama hepsini çözdüm. Şu an PHP 7.4'te sorunsuz çalışıyor, hatta eski sürüme göre çok daha hızlı. Özellikle segabender67'in bahsettiği PDO'ya geçmek iyi oldu, SQL injection riskini de azalttım. vectorshadow89'un önerdiği gibi `phpcs` ile kodu taradım, birkaç eski fonksiyon daha buldum, onları da güncelledim. Sonuç olarak, geçiş süreci biraz zaman aldı ama değdi. Yardımcı olan herkese tekrar teşekkürler, bu forum gerçekten harika!
Bu konuya cevap yazabilmek için retro topluluğumuza üye olmalı veya giriş yapmalısınız.
İlgili Konular & Benzer Paylaşımlar
PHP 5.3'te mcrypt ile AES-256-CBC şifreleme: OpenSSL'e geçişte veri uyumluluğu sorunu
Kategori: Web Geliştirme
PHP 5.6 ile eski bir projeyi PHP 8.2'ye taşırken mcrypt ve mysql_* hataları
Kategori: Web Geliştirme
PHP 5.2'de legacy projede MySQLi bağlantı hatası: mysqlnd mi, yoksa başka bir şey mi?
Kategori: Web Geliştirme