PHP 8: Eksiksiz Kılavuz

Yayınlanan: 2021-01-05

26 Kasım 2020'de PHP 8'in yeni dünyasına girdik. Her PHP güncellemesi bir dizi yepyeni, ana özellik getiriyor. Sıradan kullanıcıların çoğu için tüm güncellemeler önemli olmasa da, deneyimli WordPress geliştiricilerinin çoğu için diğer güncellemeler bile çok niş.

Ancak, hangi düzeyde geliştirme üzerinde çalışıyor olursanız olun, hız artışı ve mevcut koda zarar verebilecek değişiklikleri bozma gibi yeni sürümün özellikleri günlük iş akışınızı olumsuz etkileyebilir.

Bu kılavuzda, PHP 8'in bu yeni sürümündeki en önemli değişiklikleri inceleyeceğiz.

Bu kılavuzda

    PHP Güncellemeleri Neden Olur?

    Bir motor olarak PHP sürekli değişiyor. Kodu optimize etmeye ve PHP ile çalışmayı daha kolay ve basit hale getirmeye yardımcı olmak için her zaman yeni bitler değiştirilir veya eklenir.

    WordPress eklentisi ve tema yaratıcıları, web sitesi geliştiricileri ile birlikte, meydana geldiklerinde PHP değişiklikleri hakkında bilgi sahibi olmalıdır. Bunu yaparak, oyunda bir adım önde olacaksınız ve birkaç güncelleme daha yapıldıktan sonra sayfalar dolusu dokümantasyondan kaçınacaksınız.

    PHP'nin her yeni sürümü, geliştirme ortamına olumlu değişiklikler getirmeyi amaçlamaktadır. Ne yazık ki, bazı ince ayarların mevcut kodunuza zarar verebileceği zamanlar vardır.

    Uyumsuz, eski veya eski öznitelikler yeni PHP güncellemeleriyle çatıştığında, sitenizin tamamının bozulmasına veya sitenin bazı alanlarının çalışmamasına neden olabilir.

    Bunları doğrudan özel kod içinde ele alabilmeniz için hangi olası kırılma değişikliklerinin yayınlandığını bilmek iyi bir fikirdir. Bu aynı zamanda daha optimize edilmiş ifadelere sahip daha yeni kodu kullanmanıza da yardımcı olur.

    Ancak, kariyerinizde tek bir özel kod parçasına dokunmamış olsanız bile, WordPress kontrol paneliniz PHP'nin güncellenmiş sürümü için bir WordPress PHP Güncellemesi Gerekli bildirimi eklediğinde, yükseltme yapıp yapmayacağınıza karar vermeniz gerekir. ya da değil.

    Her zaman, bu sorunun cevabı neredeyse her zaman evet. Ancak bunu yapmadan önce, ana özellik değişikliklerini gözden geçirmek ve size sorun yaratabilecek hiçbir şey olmadığından emin olmak akıllıca olacaktır. Eskilerin dediği gibi, “Özür dilemektense güvende olmak daha iyidir.”

    PHP 8

    PHP 8 Sürümündeki Yenilikler

    PHP'nin bu sürümü, hiçbir şekilde gelmiş geçmiş en büyük güncelleme değil. Ama hala bakmamız gereken bazı heyecan verici değişiklikler var.

    Bazı açılardan, PHP 8'in nispeten küçük bir güncelleme olması biraz rahatlatıcı. Bu, mevcut kodunuzda sorunlara neden olabilecek daha az önemli değişiklik olduğu anlamına gelir.

    Başka bir deyişle, mevcut PHP sürümü, sorunları gidermek için saatler harcamanıza gerek kalmadan size bazı harika yeni özellikler sunuyor.

    PHP'nin bu sürümünde bazı ek değişiklikler yapılmış olsa da, bu kılavuz en alakalı olanları kapsayacaktır.

    Tam Zamanında (JIT) Derleyici

    PHP'nin yeni sürümüne yapılan en heyecan verici ve kesinlikle en büyük eklenti Just In Time veya JIT derleyicisidir.

    Muhtemelen bildiğiniz gibi PHP yorumlanan bir dildir. Bu, derlendikten sonra önceden belirlenmiş bir başlatma zamanında çalışmak yerine gerçek zamanlı olarak çalıştığı anlamına gelir.

    JIT'in PHP için masaya getirdiği şey derlenmiş koddur. Derlenmiş kod, belirli durumlarda gelişmiş performans sağlar.

    Bir çok PHP geliştiricisi gibiyseniz, muhtemelen web uygulamalarıyla çalışıyorsunuzdur. Ne yazık ki, JIT web uygulamalarında pek yardımcı olmaz. Ancak, aşağıdaki gibi görevler söz konusu olduğunda büyük bir gelişmeye işaret ediyor:

    • Veri analizi
    • 3D oluşturma
    • yapay zeka
    • Çalıştırılması uzun zaman alan ek işlemler

    Bunlar mutlaka en yaygın güncel PHP uygulamaları olmasa da, ileri görüşlü geliştiriciler kesinlikle PHP ile daha fazla dallanıyor.

    JIT derleyicisi, PHP'nin bunu yapmak için daha esnek olmasına yardımcı olur.

    Aslında, JIT'in PHP'nin ufkunu açması ve onu yeni amaçlar için kullanmakla ilgilenen yeni geliştiricileri getirmesi neredeyse garantilidir.

    Mevcut projeler için muhtemelen fazla bir şey yapmayacak.

    JIT'i uygulamadan önce, performansınızda herhangi bir gelişme olup olmadığını görmek için izole bir ortamda test ettiğinizden emin olun.

    Öznitellikler

    PHP'nin yeni sürümü öznitelikleri destekler. Bunlar, parametreler, sınıflar ve işlevler gibi kodunuza eklediğiniz küçük meta veri parçalarıdır.

    Bu, artık standart bir geçici çözüm olarak docblock'ları kullanmanız gerekmediği anlamına gelir. Bu küçük bir değişiklik gibi görünse de aslında PHP geliştiricileri için hayatı çok daha kolay hale getiriyor.

    Artık herhangi bir bireysel kod parçasına istediğiniz sayıda nitelik ekleyebilir, ardından bunları use ifadeleriyle içe aktarabilirsiniz.

    Niteliklere parametreler bile ekleyebilirsiniz.

    Kodunuza bir nitelik eklemek için, niteliği çevreleyen iki "küçüktür" ve iki "büyüktür" işareti eklemeniz yeterlidir.

    Niteliklerin geriye dönük uyumlu olmadığını unutmamak önemlidir. PHP'nin eski bir sürümüne taşınırlarsa hatalara neden olurlar.

    Muhtemelen bildiğiniz gibi, docblock kullanan standart geçici çözüm tamamen işlevseldir. Ama aynı zamanda her zaman oldukça tıknaz olmuştur. PHP'nin yeni sürümü ile artık doğrudan nitelikler ekleyebilirsiniz.

    PHP'ye küçük bir ekleme olmasına rağmen, sonuçları çok büyük.

    Yeni Eşleşme İfadesi

    Switch ifadeleri, if ifadelerinin daha sağlam bir versiyonuydu. Ancak PHP'deki yeni eşleşme ifadeleri bu konsepti daha da geliştiriyor.

    Bu daha kısa ve daha katıdır, bu da böcekleri daha iyi yakalamasına yardımcı olur. Ayrıca koşulları birleştirir ve herhangi bir break ifadesi gerektirmez.

    Bu şekillerde, yeni eşleşme ifadeleri belirgin bir gelişmedir.

    Switch, birden fazla ifade kullanma yeteneğine sahip olduğu için eşleşmeye göre hala avantajlıdır. Ancak bunun yanında, eşleşme ifadeleri üzerinde biraz okuma yapmayı düşünün.

    Şimdiye kadar, kullanmak isteyebileceğiniz üstün bir yedek gibi görünüyorlar.

    Birlik Türleri

    PHP'nin anahtar bölümlerinden biri türlerdir: Bir değişkene boolean, tamsayı, null ve benzeri olarak atama.

    PHP'nin bu sürümünden önce, yalnızca tek tipli değişkenler atamanıza izin veriliyordu. PHP 8, birleşim türü olarak adlandırılan iki veya daha fazla tür atamanıza izin verir.

    Örnek olarak, bir kayan nokta ve tamsayı türü atayabileceksiniz ve bu ikisinden birini kullanabilir. Float|int gibi türler arasında bir satırla belirtilirler.

    Elbette, void'i diğer türlerle birleştiremezsiniz çünkü bunlar birbirini dışlar.

    Float|float gibi gereksiz veya yinelenen türler de çalışmayacaktır.

    PHP'nin eski sürümlerinde, işlevsel bir birleşim türü oluşturmaya çalışmak için PHPDoc ek açıklamalarını kullanabilirsiniz. Artık bu tür geçici çözümü atlayabilir ve değişkenlerinizi birden çok türle atayabilirsiniz.

    Statik Dönüş ve Karışık Tipler

    Bir geliştirici olarak, bir işlevin değerini döndürmek için PHP dönüşlerinin kullanıldığı yaygın bir bilgidir. Bu sürümden önce, statik türü kullanmak bir seçenek değildi.

    “Ebeveyn” ve “self” geçerli olan, ancak “statik” olmayan dönüş türleriydi. Bu sorun, yeni PHP sürümünde tamamen giderildi.

    İnanılmaz derecede yaygın bir kullanım durumu olmasa da, ortaya çıkarsa, ona erişebildiğiniz için kesinlikle memnun olacaksınız.

    Ayrıca yeni bir karışık tür bulacaksınız. PHP'de var olan diğer tüm türleri temsil ettiği için daha doğru bir şekilde sözde tür olarak tanımlanabilir.

    Birden çok farklı türle çalışmanızı gerektiren durumlarla uğraşırken en iyi şekilde kullanılır.

    Belirli bir tür seçmezseniz varsayılanınız Karışık olacaktır.

    Çoğu zaman, karışık yerine yeni birleşim türünü kullanmak daha iyidir. Bunun nedeni, muhtemelen daha spesifik olmak isteyeceğinizdir.

    Ancak, bu yine de sizin için bir amaca hizmet edecektir.

    Gerçek şu ki, bunların hiçbiri sendika tipi kadar büyük değil, ancak kesinlikle bir gelişmeye işaret ediyorlar.

    Yeni PHP 8 İşlevleri

    PHP'nin yeni sürümü, birlikte çalışabileceğiniz yeni işlevlerle birlikte gelir.

    • str_starts_with ve str_ends_with – bu, bir dizenin belirli bir satırla bitip bitmediğini veya başlayıp başlamadığını kontrol eder
    • fdiv - bu, sıfıra bölünürken sürekli tepki verecek bölmeye izin verir
    • str_containsstr_starts_with ve str_ends_with'e benzer, ancak tam bir dizeyi kontrol eder
    • get_debug_type - gettype işlevine benzer şekilde davranır , ancak sınıf adı gibi ek bilgiler döndürür
    • get_resource_id – bu, veritabanı bağlantısı gibi bir kaynak için kimlik almayı kolaylaştırır
    • preg_last_error_msg – düz dilde okunabilen bir hata mesajı verir

    Bunlardan en iyi şekilde nasıl yararlanabileceğinizi görmek için bu yeni işlevlerden bazılarını test edin.

    Adlandırılmış Argümanlar

    Bazıları onu sevebilir ve bazıları ondan nefret edebilir. Her iki durumda da, adlandırılmış argümanlar PHP'nin yeni sürümündedir.

    Bağımsız değişkenler, verileri bir işleve aktarmanıza izin verir. Adlandırılmış bağımsız değişkenler, sıra yerine bağımsız değişken adını ileterek aynı şeyi yapmanızı sağlar.

    Bunları yine de sıralı argümanlarla birleştirebileceksiniz. Ancak isterseniz isteğe bağlı parametreleri atlayabilirsiniz.

    Pratik olarak konuşursak, bu daha temiz kod ve daha az hata anlamına gelir. Sonuçta, kod ne kadar sıkıysa o kadar iyidir. Onunla çalışmak çok daha kolay.

    Bunun, argüman adlarının değiştirilmesi ve geriye dönük uyumlulukla ilgili bir soruna neden olma olasılığı vardır ve bu da eski PHP sürümlerinde kesintilere neden olabilir. Ancak birçok geliştirici ve programcı için bu adlandırılmış argümanlar memnuniyetle karşılanan bir değişikliktir.

    PHP 8'deki Son Değişiklikler

    Yeni PHP sürümü birkaç kırılma değişikliği ile birlikte geliyor. PHP'nin eski sürümlerine yükseltme yaparsanız veya yeniden bağlantı kurarsanız bu hatalara neden olabilir. Bu son değişiklikler listesine bir göz atın ve hangilerinin sizi etkileyeceğini görün.

    1. Motor uyarıları, bildirimler, uyarılar ve önemli hatalar gibi uygun önem düzeyini gösterecek şekilde yeniden sınıflandırıldı. Bunu birçok projeyi etkilemeyecek küçük bir kırılma değişikliği olarak kabul edin.
    2. TypeError artık rutin olarak dahili işlevlerde gösterilecek. Bu, geriye dönük uyumluluğu henüz fark edebileceğimizden daha fazla etkiler, ancak yine de sağlam bir değişiklik.
    3. Daha önce sessize alınan ve yoksayılan hata raporlama seviyelerinde birden çok değişiklik yapıldı. Başka bir deyişle, daha önce görmemiş olabileceğiniz yeni hatalar artık yayılmalıdır.
    4. Sıralama daha güvenilir ve kararlıdır. PHP 7, sıralamada bazı büyük değişiklikler yapmış olsa da, en yeni güncelleme mevcut koda çok daha az zarar veriyor.
    5. Ad alanlı adlar artık tek bir simgedir. İçlerinde boşluk olamaz. Bu değişikliğin etkisi küçüktür ve düzeltilmesi kolaydır.
    6. PHP'nin önceki sürümlerinde, sınıfla eşleşen bir ada sahip yöntemler yapıcı olarak yorumlanırdı. Yeni sürümde __construct() yöntemini kullanmanız gerekecek.

    Nadiren herhangi bir soruna neden olacak düzinelerce başka küçük güncelleme var. Genel olarak konuşursak, mevcut PHP güncellemesiyle çok fazla sorununuz olmayacak.

    PHP Sürümünüzü WordPress'te Yükseltme

    Bir WordPress geliştiricisi olarak PHP sürümünüzü güncel tutmanın ne kadar önemli olduğunu bilirsiniz. WordPress kullanıcılarının çok önemli bir bölümünün hala PHP 5.6 üzerinde çalıştığını bilmek endişe verici ki bu çok büyük bir sorumluluk.

    PHP 7.4 çalıştırıyor ve tamamen güncel olduğunuzu düşünüyor olsanız bile, şimdi kesinlikle en yeni PHP sürümüne güncelleme zamanı.

    WordPress sitenizi PHP'nin daha eski bir sürümünde çalıştırmak büyük bir güvenlik riskidir. Eski PHP sürümleri, bilgisayar korsanlarının düzenli olarak yararlandığı sömürülebilir güvenlik akışlarına sahiptir.

    Mevcut pot deliklerini yamamanın tek yolu PHP'yi her zaman tamamen güncel tutmaktır.

    Ayrıca güvenlik korumanızı güçlendirmek için güçlü bir WordPress güvenlik eklentisi çalıştırmak isteyeceksiniz.

    Bonus içeriği edinin: WordPress Güvenliği Kılavuzu
    Buraya tıklayın

    PHP'nizi güncellemenin bir başka nedeni de hızdır. Her güncelleme ile daha yüksek hızlar ve daha fazla optimize edilmiş işlevler geliyor. Tabii ki, göze çarpan en büyük fark PHP 5.6 ve 7.4 arasındaydı. Ancak en yeni güncellemeyle kesinlikle hızın arttığını fark edeceksiniz.

    Uyumluluk, PHP'yi WordPress'te güncel tutmanın önemli olmasının son nedenidir.

    PHP'nin eski bir sürümü, aksaklıklara neden olabilecek veya bir web sitesini tamamen bozabilecek birçok farklı soruna neden olabilir.

    Bunun ötesinde, çalışması için tamamen güncel bir PHP sürümü gerektiren temalar ve eklentiler vardır.

    Güncellemeyi çalıştırmadan önce, güncelleme çalıştırıldıktan sonra herhangi bir çakışma olması ihtimaline karşı çalışan bir WordPress yedekleme eklentiniz olduğundan emin olun.

    PHP sürümünüzü yükseltmek oldukça basittir. Tek yapmanız gereken cPanel'inize veya kullandığınız ana bilgisayarın yönetici panosuna giriş yapmak, PHP Sürüm Yöneticisini bulmak ve en son sürümü işaretlemek. Ancak güncellemeyi çalıştırmadan önce, sunucunuzla en yeni PHP güncellemesini destekleyip desteklemediğini kontrol edin. Bazıları eski yazılımlarda çalışıyor olabilir.

    PHP ve WordPress hakkında ek bilgi için WordPress ve PHP 8 ile ilgili resmi WordPress.org belgelerine bakın.

    Özet: PHP 8 ve PHP'nin Geleceği

    PHP 7.0 – 7.4'ün canavar güncellemesi olmasa da, PHP 8'in yararlanabileceğiniz birçok özelliği var.

    JIT derleyicisinden yeni özniteliklere, eşleştirme ifadesine ve geliştiriciler için diğer yararlı işlevlere kadar, PHP'nin bu önemli yeni sürümünü tanımanın zamanı geldi.

    Bu güncellemenin hangi kısımlarını günlük iş akışınızda en çok kullanmayı öngörüyorsunuz?