Deprecated: Assigning the return value of new by reference is deprecated in Hatası ve Çözümü
PHP Sürümü Yükseltildikten Sonra vBulletin'de Görülen "Deprecated" Hataları
PHP sürümünü yükselttikten sonra eski vBulletin sürümlerinde çeşitli uyumluluk sorunlarıyla karşılaşabilirsiniz. Özellikle vBulletin 3.x ve bazı eski 4.x sürümleri, güncel PHP sürümlerinde kaldırılan veya kullanımdan kaldırılan (Deprecated) fonksiyonları içerdiğinden hata mesajları görüntülenebilir ya da forum düzgün çalışmayabilir.
Bu rehber yalnızca eski vBulletin sürümleri için hazırlanmıştır. Güvenlik, performans ve PHP uyumluluğu açısından mümkün olan en kısa sürede desteklenen güncel bir vBulletin sürümüne yükseltme yapmanız önerilir.
Karşılaşılabilecek Hata
PHP sürümü yükseltildikten sonra aşağıdaki hata mesajlarından biri görüntülenebilir.
Deprecated: Assigning the return value of new by reference is deprecatedBu hata, eski PHP sözdiziminde kullanılan referanslı nesne oluşturma yönteminin yeni PHP sürümlerinde artık desteklenmemesinden kaynaklanmaktadır.
Geçici Çözüm
Eğer kısa vadede vBulletin sürümünü güncelleme imkânınız yoksa aşağıdaki işlemleri uygulayabilirsiniz.
- FTP veya hosting Dosya Yöneticisi ile ilgili PHP dosyasını bilgisayarınıza indirin.
- Herhangi bir değişiklik yapmadan önce dosyanın yedeğini alın.
- Dosyayı Notepad++ veya UTF-8 desteğine sahip bir metin düzenleyici ile açın.
- Hata mesajında belirtilen satırı bulun.
- Aşağıdaki ifadeyi aratın.
=& newUygun olduğu durumlarda ifadeyi aşağıdaki şekilde düzenleyin.
= newDosyayı kaydederek tekrar sunucuya yükleyin ve forumun düzgün çalıştığını kontrol edin.
Bu yöntem yalnızca belirli Deprecated uyarıları için geçici bir çözümdür. PHP 7.x ve PHP 8.x sürümlerinde kaldırılan diğer fonksiyonlar nedeniyle farklı uyumluluk sorunları da yaşanabilir.
Hata Mesajlarını Gizlemek
Yalnızca hata mesajlarının ziyaretçilere gösterilmesini engellemek istiyorsanız aşağıdaki PHP kodu kullanılabilir.
ini_set('display_errors', 0);Bu işlem yalnızca hata mesajlarının ekranda görünmesini engeller. Yazılımda bulunan uyumluluk sorunlarını ortadan kaldırmaz ve kalıcı çözüm olarak değerlendirilmemelidir.
Kalıcı Çözüm Nedir?
En doğru çözüm, kullandığınız vBulletin sürümünü güncel PHP sürümünü destekleyen bir sürüme yükseltmektir. Güncel sürümler yalnızca PHP uyumluluğu sağlamakla kalmaz, aynı zamanda güvenlik açıklarını kapatarak daha kararlı bir kullanım sunar.
Hosting hesabınızda PHP sürümünü yükseltmeden önce mümkünse sitenizin bir yedeğini alın ve değişikliği test ortamında deneyin. Böylece canlı yayındaki olası kesintilerin önüne geçebilirsiniz.
Sık Sorulan Sorular
Bu hata yalnızca vBulletin'de mi görülür?
Hayır. Eski PHP sürümleri için geliştirilmiş birçok CMS, forum yazılımı ve özel PHP uygulamasında benzer Deprecated uyarıları görülebilir.
PHP hata mesajlarını kapatmak sorunu çözer mi?
Hayır. Hata mesajlarını gizlemek yalnızca uyarıların görüntülenmesini engeller. Yazılımın uyumsuz kodları çalışmaya devam edeceğinden farklı hatalar oluşabilir.
PHP 8 kullanıyorsam bu yöntem yeterli olur mu?
Hayır. PHP 8 ile birlikte birçok eski fonksiyon tamamen kaldırılmıştır. Bu nedenle yalnızca =& new ifadesini değiştirmek yeterli olmayabilir.
Sonuç
PHP sürümü yükseltildikten sonra görülen Deprecated hataları, genellikle eski vBulletin sürümlerinin güncel PHP sürümleriyle tam uyumlu olmamasından kaynaklanır. Geçici düzenlemeler kısa vadede çözüm sağlayabilse de uzun vadede en güvenli yöntem yazılımı güncel ve desteklenen bir sürüme yükseltmektir.
Bu makalede PHP sürümü yükseltildikten sonra eski vBulletin sürümlerinde görülebilen Deprecated hatalarının nedenleri, uygulanabilecek geçici çözümler ve önerilen kalıcı yöntemler açıklanmıştır. PHP sürüm yönetimi, hosting uyumluluğu ve web uygulaması yönetimi hakkında daha fazla bilgi almak için İSİMKAYIT Yardım Merkezi'ndeki diğer teknik rehberlerimizi inceleyebilirsiniz.
Bu makale yardımcı olmadı mı? Destek ekibimizle iletişime geçin veya 0850 290 3344 numaralı hattı arayın.