PHP 8.5 sözdizimi ve nesne işlemeye açıklık getiriyor

Birkaç sürüm adayından sonra PHP ekibi kararlı sürüm 8.5'i yayınladı. Programlama dilinin yeni ana sürümü, okunabilirliği ve güvenliği artırmayı amaçlayan çok sayıda dilsel iyileştirme sunuyor. Mevcut özelliklerin iyileştirilmesinin yanı sıra bazı yeni özellikler de eklenir.

Duyurudan sonra devamını okuyun

Yeni URI uzantısı, ilk kez PHP'ye URL'ler ve URI'lerle yapısal çalışma için yerel destek getiriyor. Amaç, harici kütüphanelere başvurmak zorunda kalmadan adreslerin basit ve güvenli bir şekilde çözülmesine, değiştirilmesine ve yeniden yapılandırılmasına olanak sağlamaktır. Amaç, URL'leri ayrıştırırken ve birleştirirken tipik hata kaynaklarından kaçınmak ve aynı zamanda kodu daha net ve tutarlı hale getirmektir.

iX ve dpunkt.verlag tarafından thePHP.cc işbirliğiyle düzenlenen çevrimiçi bir konferans olan BetterCode() PHP, 25 Kasım'da gerçekleşecek. İlgilenenler dersler sırasında PHP 8.5, Caddy Server ve FrankenPHP hakkında daha fazla bilgi edinebilirler. Biletlere konferans web sitesinden ulaşılabilir.

Bir diğer merkezi yenilik ise tüp operatörüdür (|>), bu da işlevsel çağrı zincirlerini çok daha okunabilir hale getirir. İç içe işlev çağrıları yerine, sonuçlar artık adım adım aktarılabiliyor. Bu, karmaşık veri akışlarının daha iyi okunabilirliğini sağlar.

RFC örneği bunu açıkça ortaya koymalıdır:


function getUsers(): array {
    return [
        new User('root', isAdmin: true),
        new User('john.doe', isAdmin: false),
    ];
}
 
function isAdmin(User $user): bool {
    return $user->isAdmin;
}
 
// This is the new syntax.
$numberOfAdmins = getUsers()
    |> (fn ($list) => array_filter($list, isAdmin(...))) 
    |> count(...);
 
var_dump($numberOfAdmins); // int(1);

Duyurudan sonra devamını okuyun

PHP 8.5 yeni dil özelliğine sahiptir clone with Bagajınızdaki eşyaların biraz değiştirilmiş kopyalarını oluşturmak için. Daha önce tüm özellikler klonlama sırasında benimseniyordu ve geliştiricilerin manuel olarak değişiklik yapması gerekiyordu, ancak bireysel değerler artık doğrudan klonlama işlemi sırasında değiştirilebilir.

Aşağıdaki örnek prensibi açıklığa kavuşturmalıdır:


readonly class Color
{
    public function __construct(
        public int $red,
        public int $green,
        public int $blue,
        public int $alpha = 255,
    ) {}

    public function withAlpha(int $alpha): self
    {
        return clone($this, [
            'alpha' => $alpha,
        ]);
    }
}

$blue = new Color(79, 91, 147);
$transparentBlue = $blue->withAlpha(128);

Bu mümkün kılar clone with özellikle değişmez veri yapıları için daha zarif ve okunabilir bir sözdizimi.

Yeni özellik #[NoDiscard] geliştiricilerin potansiyel mantıksal hataları tespit etmelerini destekler. Bu bir sonucu olacaktır #[NoDiscard] İşaretlenen işlev atılırsa PHP gelecekte bir uyarı verecektir. Bu, yanlışlıkla göz ardı edilen dönüş değerlerinin daha hızlı keşfedilebileceği anlamına gelir; bu da kod kalitesini artırmalı ve gereksiz sorun giderme işlemlerini azaltmalıdır.

Son olarak sürüm aynı zamanda PHP'nin metaprogramlama yeteneklerini de güçlendiriyor: birinci sınıf kapatmalar, dönüşümler ve çağrılabilirler artık sabit ifadelerde kullanılabilir. Bu uzantı, yapılandırma nesneleri veya dinamik varsayılanlar oluştururken olduğu gibi derleme zamanı bağlamında daha da esnek tanımlamaların kapısını açar.

Sürüm hakkında daha fazla bilgiyi php.net'te ve değişiklik günlüğünde bulabilirsiniz.

Ayrıca bakınız:


(mdo)


Yayımlandı

kategorisi

yazarı:

Etiketler:

Yorumlar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir