5 Punkte von GN⁺ 2024-11-22 | 3 Kommentare | Auf WhatsApp teilen
  • Enthält Property Hooks, asymmetrische Sichtbarkeit, eine aktualisierte DOM-API, Performance-Verbesserungen, Bugfixes und allgemeines Aufräumen
    • Property Hooks ermöglichen berechnete Eigenschaften, die von IDEs und statischen Analysetools nativ verstanden werden können
    • Einführung asymmetrischer Sichtbarkeit, mit der sich Lese- und Schreibzugriff auf Eigenschaften unabhängig voneinander steuern lassen.
  • Neue Funktionen
    • Über das Attribut #[\Deprecated] kann der bestehende PHP-Mechanismus zur Ausmusterung auf benutzerdefinierte Funktionen, Methoden und Klassenkonstanten angewendet werden.
    • Die neue DOM-API umfasst standardkonforme Unterstützung für das Parsen von HTML5-Dokumenten und behebt mehrere alte Kompatibilitätsfehler der DOM-Funktionalität.
    • Mit dem Objekt BcMath\Number lassen sich Zahlen mit beliebiger Genauigkeit objektorientiert verarbeiten.
    • Neue Array-Funktionen wie array_find(), array_find_key(), array_any(), array_all().
    • Neue PDO-Subklassen: Pdo\Dblib, Pdo\Firebird, Pdo\MySql, Pdo\Odbc, Pdo\Pgsql, Pdo\Sqlite.
    • Auf Eigenschaften und Methoden neu instanziierter Objekte kann ohne Klammern zugegriffen werden.
  • Neue Klassen, Interfaces und Funktionen
    • Neue Lazy Objects, JIT-Implementierung auf Basis des IR Frameworks.
    • Funktion request_parse_body() sowie bcceil(), bcdivmod(), bcfloor(), bcround() hinzugefügt.
    • Methoden wie DateTime::createFromTimestamp(), DateTime::getMicrosecond(), DateTime::setMicrosecond() hinzugefügt.
    • Funktionen mb_trim(), mb_ltrim(), mb_rtrim(), mb_ucfirst(), mb_lcfirst() hinzugefügt.
    • Funktionen pcntl_getcpu(), pcntl_getcpuaffinity(), pcntl_getqos_class(), pcntl_setns(), pcntl_waitid() hinzugefügt.
    • Methoden ReflectionClassConstant::isDeprecated(), ReflectionGenerator::isClosed(), ReflectionProperty::isDynamic() hinzugefügt.
    • Funktionen http_get_last_response_headers(), http_clear_last_response_headers(), fpow() hinzugefügt.
    • Methoden XMLReader::fromStream(), XMLReader::fromUri(), XMLReader::fromString(), XMLWriter::toStream(), XMLWriter::toUri(), XMLWriter::toMemory() hinzugefügt.
    • Funktion grapheme_str_split() hinzugefügt.
  • Ausmusterungen und Breaking Changes
    • Die Erweiterungen IMAP, OCI8, PDO_OCI und pspell wurden aus dem Bundle entfernt und nach PECL verschoben.
    • Implizit nullable Parametertypen sind veraltet.
    • Die Verwendung von _ als Klassenname ist veraltet.
    • Das Potenzieren von 0 mit einem negativen Exponenten ist veraltet.
    • Wird ein ungültiger Modus an round() übergeben, wird ein ValueError ausgelöst.
    • Klassenkonstanten von Erweiterungen sind jetzt typisiert.
    • Die GMP-Klasse ist jetzt als final markiert.
    • MYSQLI-bezogene Konstanten und Funktionen sind veraltet.
    • stream_bucket_make_writeable() und stream_bucket_new() geben jetzt eine StreamBucket-Instanz zurück.
    • Geändertes Verhalten von exit().
    • Die Konstante E_STRICT ist veraltet.
  • Performance- und Syntaxverbesserungen
    • Verbesserte Performance, Syntax-Verbesserungen und höhere Typsicherheit.
    • Upgrade auf PHP 8.4 empfohlen.

3 Kommentare

 
carnoxen 2024-11-23

Dank WordPress und Laravel ist es wenigstens eine Sprache, mit der man nicht verhungert.

 
budaestew 2024-11-23

Auch wenn WordPress und Laravel untergehen, ist das eine Sprache, mit der man nicht verhungert.

 
GN⁺ 2024-11-22
Hacker-News-Kommentare
  • Warum $this->countryCode keine unendliche Rekursion auslöst, ist im RFC festgelegt. Es wirkt fast magisch, dass der Eigenschaftszugriff in PHP je nach Kontext unterschiedliche Bedeutungen haben kann.

    • Es gibt diese Sprachmagie, bei der Eigenschaftszugriff in einen Methodenaufruf umgewandelt wird.
    • Ich bin kein PHP-Nutzer, aber es macht mir Sorgen, dass der Sprache solche Komplexität hinzugefügt wird.
  • Als PHP-Programmierer mache ich mir Sorgen über die Richtung, in die sich PHP entwickelt. Neue Sprachfeatures erhöhen die Komplexität der Sprache für fragwürdigen Nutzen.

    • Property Hooks bedeuten, dass Eigenschaftszugriff in Methodenaufrufe umgewandelt wird.
    • Ich habe ähnliche Features in JS und Perl verwendet, aber explizite Methoden sind klarer und leichter zu erweitern.
  • Ich freue mich, dass PHP immer noch floriert. 2021 war ich wegen Nikita Popovs Weggang besorgt, aber PHP ist immer noch eine gute Sprache, und viele Entwickler sind weiterhin aktiv.

  • Auf Property Hooks freue ich mich am meisten. Das ist eine Funktion, die ich aus C# vermisst habe.

    • Ich habe es mit __get() und __set() nachgebaut, aber das ist schwergewichtig und erforderte viele PHPDoc-Kommentare.
  • Beim Anschauen von Overloading für Array-Accessoren bin ich auf "Property Hooks" gestoßen. Ich war überrascht zu erfahren, dass es sich um ein kürzlich hinzugefügtes Feature handelt.

    • Ich finde es gut, dass Ausdrucksstärke und syntaktischer Zucker aus anderen Sprachen in PHP eingeführt wurden.
  • Ich bin mit dem neuen PHP-Release zufrieden. Es gibt viele Verbesserungen: besseres Stack-Tracking für Closures, Performance-Verbesserungen, HTML5-Unterstützung, Lazy Objects und mehr.

  • Ich freue mich auf bcmath-Objekte. Mehr noch als auf arithmetische Operatoren gefällt mir, dass nun Typprüfungen ohne Wrapper-Klassen möglich sind.

  • Ich freue mich, dass PHP sich weiterhin entwickelt. Das erinnert mich an die Zeit, als ich als Freelancer angefangen habe.

  • Die neue array_find-Funktion in PHP zeigt ein Problem im Sprachdesign. Sie ähnelt der bestehenden array_search, aber die Argumentreihenfolge ist anders.

    • Sie wurde PHP hinzugefügt, weil andere Sprachen solche Funktionen haben, aber die meisten Sprachen machen daraus keine globalen Funktionen.
  • Ich verstehe "public private(set)" nicht. "readonly public" wirkt passender.

    • Es scheint ähnlich wie private(set) in Swift zu sein.