• PHP 8.5 – En modernare, snabbare och smartare PHP-version

    PHP 8.5 markerar ett tydligt steg mot ett modernare PHP, där både språkets syntax och motor har vässats. Med en ny URI-extension, pipe-operatorn |> och förbättrat stöd för funktionell och typstark kod gör versionen det enklare att skriva tydligare, säkrare och mer högpresterande webbapplikationer. Samtidigt städas äldre beteenden bort och lägger grunden för nästa generations PHP-projekt.

    PHP 8.5 – En modernare, snabbare och smartare PHP-version

    PHP 8.5 är nu släppt och erbjuder betydande förbättringar i syntax, prestanda och utvecklarupplevelse. Språket tar ytterligare kliv mot modern och tydlig programmeringsstil, med nya operatorer, attribut och effektivare resursanvändning.

    Ny URI-extension

    En av de största nyheterna är den inbyggda URI-extensionen som ersätter parse_url() vid avancerad användning. Den ger ett konsekvent API för att parsa, normalisera och modifiera URL:er enligt RFC 3986 och WHATWG-standarden. Den bygger på uriparser och Lexbor och är särskilt användbar i system där korrekt URL-hantering är avgörande.

    Pipe-operatorn |>

    PHP introducerar nu pipe-operatorn (|>), som möjliggör kedjning av funktioner från vänster till höger. Detta ersätter djupt nästlade funktionsanrop och ger tydligare och mer läsbar kod.

    $result = $value
        |> trim(...)
        |> strtolower(...)
        |> myTransform(...);
    

    Operatorn kan användas med arrow functions och partial application. Den gör transformationskedjor enklare att följa och underhålla.

    Förbättrad objektkloning med clone-with

    Den nya syntaxen för att klona objekt och samtidigt ändra egenskaper förenklar den så kallade “with-er”-modellen och fungerar även i readonly-klasser.

    $newObj = clone ($obj, ['prop' => $value]);
    

    Det minskar behovet av extra kod vid uppdatering av objekt.

    Attributet #[\NoDiscard]

    Attributet #[\NoDiscard] varnar om returvärdet från en funktion ignoreras utan avsikt. Detta bidrar till ökad säkerhet i API:er. Om värdet medvetet ska ignoreras kan (void) användas.

    Stöd för compile-time-uttryck

    PHP 8.5 utökar stödet för uttryck som kan användas vid kompilering. Statiska closures och first-class-callables tillåts nu i konstanta uttryck, till exempel i attributparametrar, klasskonstanter och standardvärden på egenskaper.

    Prestandaförbättringar med persistenta cURL-handel

    Med curl_share_init_persistent() kan share-handles återanvändas mellan förfrågningar i långkörande applikationer. Detta minskar kostnaden för upprepade anslutningsinitieringar.

    Nya hjälpfunktioner: array_first() och array_last()

    De nya funktionerna array_first() och array_last() returnerar första respektive sista värdet i en array och ger null om arrayen är tom. Detta förenklar hantering tillsammans med null-sammansmältningsoperatorn.

    Övriga förbättringar

    • Stacktraces visas nu även vid fatala fel.
    • Ny INI-inställning: max_memory_limit.
    • Ny konstant: PHP_BUILD_DATE.
    • Ny klass: IntlListFormatter.
    • Nya funktioner: get_exception_handler() och get_error_handler().
    • DOM får stöd för getElementsByClassName() och insertAdjacentHTML().
    • Ny funktion: grapheme_levenshtein().
    • locale_is_right_to_left() och Locale::isRightToLeft() för språkmedveten hantering.
    • Nytt CLI-kommando: php --ini=diff för att visa icke-standardinställningar.

    Föråldrade funktioner och beteenden

    • Backtick-tecknet som alias för shell_exec() deprekeras.
    • Icke-standardiserade namn vid typomvandling tas bort.
    • Varningar införs vid omvandling från float till int.
    • Begränsningar införs för användning av null som arrayindex.
    • __sleep() och __wakeup() mjuk-deprekeras till förmån för __serialize() och __unserialize().

    Tillgänglighet

    PHP 8.5 finns nu att ladda ner som källkod från den officiella webbplatsen och kommer inom kort till stabila paketrepositorier i vanliga Linux-distributioner. Mer information finns i de officiella release notes.

    Sammanfattning

    PHP 8.5 innebär en tydlig modernisering av språket. Pipe-operatorn och den förbättrade kloningssyntaxen gör koden mer läsbar och målinriktad. URI-extensionen ger exakt URL-hantering och prestandaförbättringarna stärker PHP som motor för långkörande applikationer. Med förbättrad felhantering och utökad syntax ökar även säkerheten och robustheten.

    PHP fortsätter med denna version att utvecklas från ett traditionellt skriptspråk till ett modernt och kraftfullt programmeringsspråk.

    https://www.php.net/downloads.php

    Om php i vår wiki

    https://wiki.linux.se/index.php/PHP

    Teknisk fakta: PHP 8.5

    • Ny URI-extension för standardenliga URL-tolkningar
    • Pipe-operatorn |> för kedjade anrop
    • Förbättrad objektkloning med clone-with-syntax
    • Attributet #[\NoDiscard] varnar vid ignorerade returvärden
    • Nya funktioner: array_first() och array_last()

Etikett: pipe operator

  • PHP 8.5 – En modernare, snabbare och smartare PHP-version

    PHP 8.5 markerar ett tydligt steg mot ett modernare PHP, där både språkets syntax och motor har vässats. Med en ny URI-extension, pipe-operatorn |> och förbättrat stöd för funktionell och typstark kod gör versionen det enklare att skriva tydligare, säkrare och mer högpresterande webbapplikationer. Samtidigt städas äldre beteenden bort och lägger grunden för nästa generations…