PHP 8.2 henüz resmi olarak piyasaya sürülmemiştir ve resmi bir sürüm tarihi hakkında henüz bilgi yoktur. Ancak, PHP 8.1'in öncülü olarak çeşitli yeni özellikler ve iyileştirmeler içereceği beklenmektedir.
PHP 8.2 için büyük bir iyileştirme, union types (birleşik türler)dir. Union types, bir değişkenin birden fazla olası türü olmasına izin verir ve bu, kodun daha ifade edici ve anlaşılır olmasını sağlar.
Başka bir iyileştirme ise attributes (öznitelikler)dir. Attributes, sınıflara, methodlara, özelliklere, parametrelere ve fonksiyonlara meta-veri eklemek için bir yoldur ve bu, kodun amacını anlamak için daha kolay hale getirir.
PHP 8.2 ayrıca daha iyi bir performans içerecektir. PHP 8.0'da tanıtılan just-in-time (JIT) derleyicinin performansı PHP 8.2'de daha da iyileştirilmiş olacaktır. Bu, özellikle büyük sayıda matematik işlemi gerçekleştirilen durumlarda PHP 8.2'nin öncülünden daha hızlı olmasını sağlayacaktır.
Ayrıca, PHP 8.2, named arguments (isimlendirilmiş argümanlar), constructor property promotion (yapıcı özellik tanıtımı) ve match expressions (eşleştirme ifadeleri) gibi yeni sözdizimi özellikleri, yeni fonksiyonlar ve sınıflar içerecektir.
Önemli bir not olarak, PHP 8.2 henüz yayınlanmadı ve yukarıda bahsettiğim özellikler resmi değil ve geliştirme devam ettikçe değişebilir veya kaldırılabilir. Bu nedenle, PHP 8.2 hakkında en son bilgiler için resmi PHP belgelerine bakmanızı öneriyorum.
Yeni salt okunur sınıf özelliği, sürüm 8.1 ile yayınlandı. PHP 8.2 onu daha da geliştirir. Artık tüm sınıfı salt okunur olarak ilan edebileceksiniz. Bunu yapmak, o sınıfın tüm özelliklerini readonly olarak değiştirir . Bu, dinamik özellikler için çalışmaz - bunların salt okunur olarak bildirilmesi bir hataya neden olur.
PHP 8.2 içinde "Salt Okunur Sınıflar" olarak adlandırılan yeni bir özellik, sınıfları salt okunur olarak tanımlamanıza olanak tanır. Bu, sınıf içindeki herhangi bir özellik veya metodun sadece erişilebilir ama değiştirilemez olduğu anlamına gelir. Bu, sınıf içindeki belirli veri veya davranışın kazara değiştirilmeyeceğinden emin olmak istediğiniz bazı durumlarda yararlı olabilir.
Bir sınıfı salt okunur olarak tanımlamak, "final" anahtar kelimesini "class" anahtar kelimesinden önce ekleyerek yapılır.
hangi özellik veya metod da salt okunur olarak işaretlenir.
Bu özellik sadece public özellik ve metodları etkiler, private veya protected olarak tanımlanmış özellik ve metodlar etkilenmez ve hala değiştirilebilir.
Salt okunur sınıflar, uygulamanızda bazı kritik veri veya davranışların yanlışlıkla değiştirilmemesi için daha fazla güvenlik ve güvenilirlik sağlamak için iyi bir yoldur.
Tabii, PHP 8.2'de salt okunur sınıfları nasıl kullanılır;
final class MyReadOnlyClass {
public int $age;
public function __construct(int $age) {
$this->age = $age;
}
}
$readOnly = new MyReadOnlyClass(25);
echo $readOnly->age; // Output: 25
$readOnly->age = 30; // This will throw an error "Cannot modify property age of class MyReadOnlyClass"
Bu örnekte, MyReadOnlyClass sınıfı "final" anahtar kelimesi ile tanımlanmıştır ve yapıcı metodu ile age özelliği oluşturulur ve değer ataması yapılır. Daha sonra age özelliğine erişilir ve değiştirilmeye çalışılırsa hata fırlatır.
Aşağıdaki PHP özelliklerini bildirmenin mümkün olmayacağını unutmayın:
PHP 8.0 ile kullanıcılara Birlik Tipleri desteği sunuldu. Bir türü, iki veya daha fazla türün birleşimi olarak ilan edebilirsiniz. Mümkün olan türler olarak false ve null kullanabilseniz de, bunların bağımsız türler olarak kullanılmasına izin verilmedi.
PHP 8.2 ile, false ve null'u bağımsız türler olarak kullanmak mümkün olacaktır. Bu eklemeyle, dönüş, parametre ve özellik türlerini daha doğru bir şekilde bildirebileceğiniz için PHP tür sistemi daha açıklayıcı olacaktır.
PHP 8.2, "Redact Hassas Parametre Değer Desteği" olarak adlandırılan yeni bir özellik sunar. Bu özellik uygulamanızın günlüklerinde ve hata mesajlarında hassas bilgileri gizlemenizi veya kaldırmanızı sağlar. Bu özellik, şifreler, kredi kartı numaraları ve diğer hassas veriler gibi belirli parametreleri belirtmenizi ve bunların günlüklerde veya hata mesajlarında görünmemesini sağlar.
Bu özellik, yeni debug_print_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, $redact_list)
fonksiyonu ile gerçekleştirilir ve hassas verilerin kaldırıldığı bir çağrı yığını geri izlemesini yazdırmak için kullanılabilir.
PHP 8.2, mysqli uzantısı için "mysqli_execute_query" adlı yeni bir fonksiyon ve "mysqli::execute_query" adlı yeni bir yöntem sunar. Bu fonksiyon ve yöntem ile, mysqli sorgularını daha kolay ve performanslı bir şekilde çalıştırabilirsiniz. Bu fonksiyon veya yöntem, sorgunun çalıştırılması ve sonucun döndürülmesi işlemlerini tek bir adımda gerçekleştirerek, kodunuzu daha okunaklı ve anlaşılır hale getirir.