Hakan GÜZEL

PHP 8’de 5 yeni kullanışlı özellik

Selam!

PHP 8’in Kasım 2020’de geleceği haberini zaten okuduğunuzu biliyorum! Muhtemelen bu sürümdeki yeni özellikleri listeleyen tonlarca makale okumuşsunuzdur. Bunları da okudum ve kişisel olarak günlük programlamada en yararlı olacağını düşündüğüm PHP 8’deki kullanışlı özelliklerin bir listesini sırasız bir liste halinde yazdım.

Null güvenli operatör

PHP 7’de null coalescing operatortanıtıldı. Bu özellik beni Undefined indexhatalardan kurtardı ve varsayılan değerleri kolayca ayarladı. Ancak bu method çağrılarıyla çalışmaz. Özellikle zincirleme method çağrılarında. Null güvenlik operatörü ile şöyle bir şey yapabiliriz:

<?php

$value = $user->getAddress()?->getCountry();

Bununla, kodumda en yaygın hatamla asla karşılaşmayacağım:Call to a member function getPrimaryAddress() on null!

Yeni str_contains fonksiyonu

Sonunda! Bu, PHP kaynağında olmasını beklediğim bir şey. Laravel’in str_contains’ine alıştıktan sonra, bilinçaltında str_contains’i bir Symfony projesinde bile kullanmayı denedim, tabii ki sonuçlandı Call to undefined function str_contains()ve strposonun yerine kullanmak zorunda kaldım .

<?php
// strpos Kullanımı
$contains = \strpos('Please use str_contains', 'str_contains') !== false;
// Yeni str_contains kullanımı
$contains = \str_contains('Please use str_contains', 'str_contains');

Yeni str_starts_with ve str_ends_with fonksiyonu

Yeni str_containsfonksiyonu ile aynı . Bu yeni fonksiyonı birçok kullanım durumum oldu. Aynı mantıkla yapılabilmesine rağmen, strposgerçekte elde etmek istediğimiz şeyle okunabilir fonksiyon çağrılarına sahip olmak daha iyidir.

Constructor Property Promotion

Typescript’e aşina iseniz, muhtemelen bu sözdizimini zaten görmüşsünüzdür. Artık PHP 8’de uygulandı!

<?php
// Şimdi
class User {
 public function __construct(
 public string $email,
 public string $name,
 public string $password,
 ) {}
}

Bu, şunun için bir kısaltmadır:

<?php
class User {
 public string $email;
 public string $name;
 public string $passwor;
 
 public function __construct(
 string $email,
 string $name,
 string $password,
 ) {
 $this->email = $email;
 $this->name = $name;
 $this->password = $password;
 }
}

Bu bence harika ve faydalı bir katkı. Bu, zaten constructor’da tanımladığımızı bildiğimizde özellikleri tekrar tekrar bildirmek için bize bir ton zaman kazandırır.

Adlandırılmış Bağımsız Değişkenler

Bu, birçok sorunu çözer. Özellikle çok sayıda boş değer atanabilir argümanımız olduğunda! Bu fonksiyon için önce ve sonra fonksiyon çağrısına bakın

<?php
function aLotOfNullables(int $a, ?int $b = null, ?int $ = null, ?int $d = null) {}
// Önce
aLotOfNullables(1, null, null, 100);
// Sonra
aLotOfNullables(a: 1, d:100);

Bu sadece fonksiyn için değil. nullable argüman çağrıları constructor ve php çekirdek işlevlerinde kullanılabilir.

JIT Compiler (Özel Mansiyon)

Biliyorum. Bu 6. madde ama zaten 5 faydalı PHP 8 özelliği söyledim, ancak bu, PHP 7’den bu yana başka bir performans yükseltmesi olduğu için PHP 8’e en kullanışlı eklenti olabilir. Resmi sürümü aldığımızda bunu test edelim.

PHP 8’de yararlı bulabileceğiniz çok daha fazla yararlı özellik vardır. PHP 8 uygulanan RFC’leri kontrol edebilirsiniz .

Exit mobile version