5 puan yazan GN⁺ 2024-11-22 | 3 yorum | WhatsApp'ta paylaş
  • Ö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

 
carnoxen 2024-11-23

WordPress ve Laravel sayesinde en azından açlıktan ölmeyecek bir dil.

 
budaestew 2024-11-23

WordPress ve Laravel yok olsa bile aç kalmayacağınız bir dildir.

 
GN⁺ 2024-11-22
Hacker News görüşleri
  • $this->countryCode ifadesinin 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.

    • Özellik erişiminin metot çağrısına dönüştüğü bir dil sihri var.
    • PHP kullanıcısı değilim ama bu tür bir karmaşıklığın dile eklenmesi endişe verici.
  • 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.

    • Property hook'lar, özellik erişiminin metot çağrısına dönüştüğü anlamına geliyor.
    • JS ve Perl'de buna benzer özellikler kullandım ama açık metotlar daha anlaşılır ve genişletmesi daha kolay.
  • 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.

    • Bunu __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.

    • Diğer dillerdeki ifade gücünün ve sözdizimsel şekerin PHP'ye gelmesini memnuniyetle karşılıyorum.
  • 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_find fonksiyonu, dil tasarımındaki sorunu gösteriyor. Mevcut array_search fonksiyonuna benziyor ama argüman sırası farklı.

    • Başka dillerde bu tür fonksiyonlar var diye PHP'ye de eklenmiş ama çoğu dil bunları global fonksiyon yapmıyor.
  • "public private(set)" ifadesini anlamıyorum. "readonly public" daha uygun görünüyor.

    • Swift'teki private(set)e benziyor.