wordpress geliştiricileri için php 8 | SADIK ÖZDOĞAN KİŞİSEL BLOĞU
Okuma süresi: 8 dk, 50 sn
Yazar sadık özdoğan / wordpress
1 kişi beğendi.
1223 kere okundu}
27 Ocak 2021

wordpress geliştiricileri için php 8

wordpress geliştiricileri için php 8

Merhaba arkadaşlar.
Bir wordpress kullanıcısı olarak bu yazıyı sizler için yazmak istedim.
Her ne kadar bir kullanıcı olsamda wordpress geliştiricileri içinde wordpress ile ilgili makale yazmaya çalışıyorum.
Bu okuyacağınız yazıyı sadece geliştiriceler değil wordpress kullanıcılarınında okuması, bilmesi gerekmektedir.
biliyorsunuz 26 Kasım 2020 tarihinde php geliştiricileri php 8.0'ı tanıttı ve aralık ayındada yayımladı.
Php 8 güvenlikten performansa kadar birçok yenilik içermektedir.
Bu değişikliklerden en belirgin olanı bazı işlevlerin kaldırılmasıdır.
PHP 8 sürümünde bir önceki sürümlere nazaran çok daha büyük değişiklikler bulunmaktadır.

PHP 8'e Hemen Yükseltmeli Miyim

Yıllardır php ve wordpress ile uğraşıyorum. Bu deneyimlerim sizlere hemen yükseltmemeniz konusunda tavsiye vermektedir.
Halihazırdaki WordPressinize stabil bir destek sunulana kadar yükseltmemelisiniz.
WordPress geliştiricilerinin 18 Kasım tarihinde yaptıkları söyleşiye göre 5.6 sürümüyle beraber PHP 8 ile beta şeklinde uyum sağlanmaktadır.
Ancak bu birtakım sorunlara sebep olabilir, temalarda, eklentilerde bozukluklar meydana gelebilir. Şuanda php 8 için wordpress geliştirmeleri ve gerekli testler yapılmaktadır.
Eğer WordFence Security eklentilerinden birisini kullanıyorsanız, PHP 8 ile uyum için çalışmalar devam etmektedir. Geliştiricilerin kendi blog sayfasından yapmış oldukları açıklamaya göre, kısmi uyumluluk ve destek sunulacak fakat stabil bir kullanım ve tam anlamıyla uyumluluk sağlanabilmesi için ek testler uygulanması gerektiği açıklanmıştır.
Sizler php 8'e hemen geçtiyseniz, ön planda sorun farketmeyebilirsiniz, ancak arka planda bir süre sonra birtakım bozulmalar meydana gelebilir.
Bunun sebeplerinide şöyle açıklayabilirim: şuanda kullanmış olduğunuz, tema ve eklentiler php 8'e göre kodlanmadığı için bir takım bozulmalar yaşamanız muhtemeldir.

> php 8'de hangi değişiklikler vardır

Geliştiricilerin bir kısmı uzun zamandır PHP'nin diğer alternatiflere kıyasla çok daha güvensiz olduğunu düşünüyordu.
Bu halen tartışmaya açık bir mevzu zira herhangi bir programlama dilinin/web programlama dilinin güvenlik açısından ne derece güvenli veya güvensiz olduğunu anlamak zordur.
Yine de PHP 8’den önceki PHP sürümlerine bakıldığında, yeni sürüm eskilerde olduğu gibi bazı kod hatalarına karşı toleranslı davranmıyor.
Eski sürümlerde küçük hatalar olması durumunda hatanın ne olduğuna bağlı olarak kodlar çalışmaya devam edebiliyordu. Bundan ötürü güvenliğin biraz daha sıkılaşmış olduğu düşünülmektedir.
Php 8'de artık daha sert bir yazım dili tercih edilmektedir. bazı töleranslı kodlar artık dölere edilmeyecektir. Php 8 daha kurallara uyan bir yapı ile karşımıza çıkıyor. Buda bize daha temiz bir kodlama yapılacağını anlatır.
Artık php 8'de hatalı kodlar çalışmayacak, php8'in esnek yapısından çok katı bir yapıda olduğunu söylemek gerekir.
Ayrıca PHP 7.x sürümüyle tedavülden kaldırılan bazı fonksiyonlar ve çeşitli özellikler bu sefer PHP 8 ile beraber daha kesin bir şekilde tamamen kaldırılıyor:

  • $php_errormsg değişkeni
  • create_function() fonksiyonu
  • mbstring.func_overload ini yönergesi
  • real tip
  • allow_url_include ini yönergesi
  • restore_include_path() fonksiyonu
  • each() fonksiyonu

WordPress Eklentileri ve Temalar Nasıl Etkilenecek

Bu değişkenler, fonksiyonlar ve yönergelerin artık pek kullanılmadığını bilsek de, Wordfence tarafından yapılan araştırmaya göre create_function kullanan ve milyonlarca web sitesi tarafından kullanılan popüler 5.000 kadar WordPress eklentisi mevcuttur.
Bu durumda yükseltme yapmanız halinde sorun yaşama ihtimaliniz oldukça yüksektir.
Yine de bazı durumlar için eski PHP sürümleriyle uyumluluk adına bunların kullanımına izin verilmiş olabilir.
Her şeye rağmen birçok eklenti maalesef PHP 8'e geçişte kapsamlı şekilde düzenlenmezse, sorunlara neden olacaktır.
Çok az sayıdaki eklentiler ve temalar da genellikle üçüncü taraf kütüphanelerden yararlanır. WordPress geliştiricileri uyumluluk için bunların da güncellenmesini bir süre daha bekleyebilir.
Eğer bu kütüphaneler PHP 8 ile uyumlu olacak şekilde güncellenmez ise, bu kitaplıkların alternatiflerini kullanmak hatta ve hatta PHP 8 uyumlu olması için temalarla eklentileri sıfırdan yazmak gerekebilir.
Yoast seo
eklentisinin geliştiricileri tarafından bu geçiş sürecinde diğer geliştiriciler tarafından neler yapılması gerektiğine dair birtakım öneriler ve uyumluluk raporları hazırlandı. Eğer bir geliştiriciyseniz mutlaka okumanızı öneririm.

PHP 8 Hakkındaki Güvenlik Endişeleri

Güvenlik açısından sorun çıkartan birçok fonksiyon ve özellik PHP 8 ile daha önceki paragraflarda belirtildiği gibi kaldırılmış olsa da, insan elinden çıkan her şeyde olduğu gibi çeşitli hataları ve kusurları da hesaba katmak gerekir.
Bundan sebep çeşitli endişeler doğacaktır, zaten her yeni sürümde bu tip endişeler doğmaktadır.
PHP, “Type Juggling” adı verilen bir şeye müsaade ediyor. Bu özellik sayesinde sayı içeren dizeleri tam sayı veya ondalık sayılarla aynı şekilde ele almaya yarayan ve katı karşılaştırmaya yarayan operatörü === yerine == kullanılması durumunda bu iki farklı tür arasında matematiksel karşılaştırma yapılabilir demektir.
Bu birçok geliştirici için özünde faydalı olabilirken, bazen de yazılımda alışılmamış davranışların meydana gelmesine neden olabilir.
Type Juggling’in neden soruna yol açabileceğine WordFence makalesinde güzelce değinmiş. Klasik bir örnek olan 0==”blah” değeri true olarak dönerken, PHP 8 düzeltme amacıyla bu tarz davranışları düzene sokmaya çalışırken hatalara neden olabilir. Örneğin 0==”0blah” false olarak döndürülebilir.
Temelde bu güvenliği artıracaktır fakat standart olmayan cookie ile tanımlama bilgilerini kullanarak parola kontrollerini atlamak amacıyla PHP’nin “Type Juggling” özelliğinin davranışı kullanılabilir ve bu şekilde kullanılabilecek bir dizi istismar var. Ek olarak çok sayıda eklenti veya çeşitli ek bileşen kritik işlevler için gevşek karşılaştırmalardan yararlanıyor.
Bunlar genelde PHP 8 sürümüne yükseltme sonrası kullanılmaya devam edilecek fakat bu durumdan ötürü yeni güvenlik açıkları da ortaya çıkabilir.
Ayrıca PHP 7.x sürümünden 8’e geçiş esnasında eklenti geliştiricileri ve bazı tema geliştiricileri kod güncellemek için uğraşmak yerine, desteği keserek atıl halde bırakabilir.
Bu yaygın temalardan ve eklentilerden çok, daha az web sitesi tarafından kullanılan tema ve eklentilerde görülebilir. Geliştiricisi tarafından terk edilen eklentilerde ve temalarda çıkacak olan güvenlik açıkları genellikle düzeltilmez. Bu da büyük bir güvenlik riskidir.
Diğer bir güvenlik riski de geliştiricilerden çok barındırıcı ve site sahipleri yüzünden ortaya çıkabilir. Eski eklentilerini sağlıklı bir şekilde çalıştırmak için web sitesi sahipleri güvensiz olan eski PHP sürümlerinde kalmaya devam edebilirler.
Bütün bunların dışında bazı zararlı yazılımlar niyetlerini gizlemek amacıyla PHP’nin hata toleransı özelliğiyle kaldırılmış olan fonksiyonlarına da güveniyor. Bu tarzdaki zararlı dosyalar PHP 8 kurulu ortamda ya çalışmayı bırakır ya da kendisini ele verir. Ya da zaman içerisinde kötü amaçlı yazılım yazarları tarafından uyumlu olacak şekilde geliştirilmeye devam edilir.

PHP 8 ile Gelen Performans Değişiklikleri

PHP 8 ile beraber gelen heyecan verici bir diğer özellik ve gelişme ise JIT veya tam adıyla “Just In Time / Tam Zamanında” derleme.
PHP bildiğiniz gibi yorumlanan bir dil. Yani derlenmez, aksine çalışma esnasında makine koduna çevrilir. Örneğin bu şekilde çalışan diğerlerinden örnek bir programlama dili ise Python’dur.
JIT özelliği sayesinde sıkça kullanılan kodun kayıtları tutulmaya devam edilir ve aynı kod tekrar kullanıma sunulacaksa uygun şekilde optimize edilir.
Bu, belirli fonksiyonların kullanıldığı yapılarda çok büyük performans artışı sağlar. Jıt'ın JavaScript gibi diğer dillerde de kullanılmaya başlanıp, eklenmesinden sonra yeni uygulamaların adeta patlamasına neden olmuştur.
Örneğin JavaScript yardımıyla çalışan ve kullanıcıyla etkileşime giren sanal makineler web sitelerinin oluşmaya başladığı ilk günlerde hayal bile edilemiyordu. Artık geçmişte sunucuya belirli görevleri yerine getirtmek için saf PHP kütüphanelerini kurmak da daha pratik hale geldi.
Bütün bunlar bir yana, WordPress gibi web içerik yönetim sistemleri için yapılabilecek ve ortaya çıkacak performans iyileştirmesi maalesef minimum düzeyde olacaktır.
Ortalama bir WordPress kullanıcısının veya geliştiricilerin bu yeni özellikten yararlanmaları oldukça uzun zaman alacak gibi gözüküyor.
Her ne kadar bütün bu güzel özellikler geliştiricilerin işini kolaylaştırsa da, WordPress sitelerinde geriye yönelik olan uyumluluk bozulacağından, gelecekte yayınlanacak tema ve eklentilerde bu özelliklerden yararlanılması pek ihtimal dahilinde değildir.
Her PHP sürümünün ortalama iki senelik bir yaşam döngüsü vardır. Bu döngüye hataların giderilmesi ve güvenlik açıklarının da kapatılması dahil edilirse bu süre üç seneye çıkabilir.
PHP 7.4 sürümü 2019 yılının Kasım ayında yayınlandı ve 7.4 sürümündeki hataların Kasım 2021’e kadar düzeltileceği biliniyor. Kasım 2022’ye kadar da güvenlik sorunları düzeltildikten sonra yaşam döngüsünün sonuna gelinecek.
Bu nedenle Kasım 2022 tarihini PHP 7.x sürümünün kesin sonlandırılma tarihi olarak düşünebiliriz. Bu hesaptan 2022 yılına kadar web uygulamalarının en az PHP 8.0 ile veya daha risksiz ve güncel sürümü destekliyor olmaları gerekir.
Php 8'in geleceği biz wordpress kullanıcılarını ve geliştiricilerini bu denli etkileyecektir.
Bu gelişmeleri yakından takip edeceğim ve siz blog takipçilerimi bilgilendireceğim.
Soru ve sorunlarınızı, php 8 ile ilgili endişelerinizi yazabilir ve benimle bir söyleşi yapabilirsiniz.
İyi bloglamalar herkese.

Bir önceki yazımız olan wordpress debug ile hata yakalama başlıklı makalemizde wordpress debug ile hata yakalama, wordpress debug modu ve wordpress debug modunu aktif etme hakkında bilgiler verilmektedir.

1 kişi beğendi.

sadık özdoğan Hakkında

2015ten itibaren sadece worddpress ile uğraşan kendi halinde biriyim.

Benzer Yazılarım

Yorum Yazın




*

code

e-posta listeme katılın

en güncel yazılarımdan haberdar olmak için e-posta listeme katılın.

sosyal medya hesaplarım

sadık özdoğan
rica ederim.
sedat
Teşekkürler güzel paylaşım. https://www.esgec.com esgec
sadık özdoğan
çok teşekkür ederim yorumunuz için.

Yukarı