- Özellik kancaları, asimetrik görünürlük, güncellenmiş DOM API, performans iyileştirmeleri, hata düzeltmeleri ve genel düzenlemeler içeriyor
- IDE'lerin ve statik analiz araçlarının yerel olarak anlayabildiği hesaplanmış özellikleri destekleyen özellik kancaları sunuluyor
- Özelliklerin okuma ve yazma kapsamını bağımsız olarak kontrol etmeyi sağlayan asimetrik görünürlük kullanıma sunuldu.
- Yeni özellikler
#[\Deprecated] niteliği aracılığıyla kullanıcı tanımlı fonksiyonlara, metotlara ve sınıf sabitlerine PHP'nin mevcut kullanım dışı bırakma mekanizması uygulanabiliyor.
- Yeni DOM API, HTML5 belgelerini ayrıştırmak için standartlara uyumlu destek içeriyor ve DOM işlevlerindeki çeşitli eski uyumluluk hatalarını düzeltiyor.
BcMath\Number nesnesi kullanılarak keyfi hassasiyetteki sayılar nesne yönelimli şekilde işlenebiliyor.
array_find(), array_find_key(), array_any(), array_all() gibi yeni dizi fonksiyonları sunuluyor.
- PDO'nun yeni alt sınıfları
Pdo\Dblib, Pdo\Firebird, Pdo\MySql, Pdo\Odbc, Pdo\Pgsql, Pdo\Sqlite sunuluyor.
- Yeni örneklenmiş nesnelerin özelliklerine ve metotlarına parantez kullanmadan erişilebiliyor.
- Yeni sınıflar, arayüzler ve fonksiyonlar
- Yeni Lazy Objects ve IR Framework tabanlı JIT uygulaması.
request_parse_body() fonksiyonu ile bcceil(), bcdivmod(), bcfloor(), bcround() fonksiyonları eklendi.
DateTime::createFromTimestamp(), DateTime::getMicrosecond(), DateTime::setMicrosecond() gibi metotlar eklendi.
mb_trim(), mb_ltrim(), mb_rtrim(), mb_ucfirst(), mb_lcfirst() fonksiyonları eklendi.
pcntl_getcpu(), pcntl_getcpuaffinity(), pcntl_getqos_class(), pcntl_setns(), pcntl_waitid() fonksiyonları eklendi.
ReflectionClassConstant::isDeprecated(), ReflectionGenerator::isClosed(), ReflectionProperty::isDynamic() metotları eklendi.
http_get_last_response_headers(), http_clear_last_response_headers(), fpow() fonksiyonları eklendi.
XMLReader::fromStream(), XMLReader::fromUri(), XMLReader::fromString(), XMLWriter::toStream(), XMLWriter::toUri(), XMLWriter::toMemory() metotları eklendi.
grapheme_str_split() fonksiyonu eklendi.
- Kullanımdan kaldırmalar ve uyumluluğu bozan değişiklikler
- IMAP, OCI8, PDO_OCI ve pspell eklentileri paketten çıkarılarak PECL'e taşındı.
- Örtük olarak nullable olan parametre türleri kullanımdan kaldırıldı.
- Sınıf adı olarak
_ kullanımı kullanımdan kaldırıldı.
- 0'ı negatif bir üssün kuvveti olarak yükseltmek kullanımdan kaldırıldı.
round() fonksiyonuna geçersiz bir mod verilirse ValueError oluşuyor.
- Eklentilerdeki sınıf sabitleri artık tür belirtilmiş durumda.
- GMP sınıfı artık
final olarak tanımlanıyor.
- MYSQLI ile ilgili sabitler ve fonksiyonlar kullanımdan kaldırıldı.
stream_bucket_make_writeable() ve stream_bucket_new() artık StreamBucket örnekleri döndürüyor.
exit() davranışı değişti.
E_STRICT sabiti kullanımdan kaldırıldı.
- Performans ve sözdizimi iyileştirmeleri
- Performans, sözdizimi ve tür güvenliği iyileştirildi.
- PHP 8.4'e yükseltme öneriliyor.
3 yorum
WordPress ve Laravel sayesinde en azından açlıktan ölmeyecek bir dil.
WordPress ve Laravel yok olsa bile aç kalmayacağınız bir dildir.
Hacker News görüşleri
$this->countryCodeifadesinin sonsuz özyinelemeye yol açmamasının nedeni RFC'de belirtilmiş. PHP'de özellik erişiminin bağlama göre farklı anlamlar taşıyabilmesi biraz sihir gibi geliyor.Bir PHP programcısı olarak PHP'nin gidişatı konusunda endişeliyim. Yeni dil özellikleri, şüpheli faydalar uğruna dilin karmaşıklığını artırıyor.
PHP'nin hâlâ gelişip serpilmesine seviniyorum. 2021'de Nikita Popov'un ayrılması nedeniyle endişelenmiştim ama PHP hâlâ iyi bir dil ve etrafta çok sayıda geliştirici aktif.
En çok property hook'ları heyecan veriyor. C#'ta özlediğim bir özellikti.
__get()ve__set()ile taklit etmeye çalıştım ama bu ağır kalıyordu ve çok sayıda PHPDoc açıklaması gerektiriyordu.Dizi erişimci aşırı yüklemesine bakarken "Property Hooks"u fark ettim. Bunun yakın zamanda eklenen bir özellik olduğunu öğrenince şaşırdım.
PHP'nin yeni sürümünden memnunum. Closure'lar için daha iyi stack trace, performans iyileştirmeleri, HTML5 desteği, lazy object'ler gibi birçok geliştirme yapılmış.
bcmath nesneleri konusunda heyecanlıyım. Aritmetik operatörlerden çok, sarmalayıcı sınıf olmadan veri tipi kontrolü yapabilmek hoşuma gidiyor.
PHP'nin hâlâ ilerliyor olmasına seviniyorum. Freelancer olarak başladığım günleri hatırlatıyor.
PHP'nin yeni
array_findfonksiyonu, dil tasarımındaki sorunu gösteriyor. Mevcutarray_searchfonksiyonuna benziyor ama argüman sırası farklı."public private(set)" ifadesini anlamıyorum. "readonly public" daha uygun görünüyor.
private(set)e benziyor.