Nowości w PHP 8.4 - Property Hooks i nowe funkcjonalności

16.08.2025

Kurs PHP 8.4 w praktyce – Jakie nowości wprowadza PHP8.4?

PHP 8.4, wydany 21 listopada 2024 roku, przynosi szereg nowości, które znacząco wpływają na rozwój aplikacji webowych. Wśród nich znajdują się Property Hooks, Asymetryczna Widoczność, nowe funkcje tablicowe oraz wsparcie dla HTML5. Te zmiany nie tylko ułatwiają codzienną pracę programistów, ale także stanowią solidny fundament dla tworzenia własnych frameworków PHP.

Property Hooks – nowy wymiar kontroli nad właściwościami

Dzięki Property Hooks możemy definiować zachowanie getterów i setterów bez potrzeby pisania dodatkowych metod. To rozwiązanie pozwala na bardziej przejrzysty i zwięzły kod.

PHP 8.4

<?php
class Locale
{
    public string $locale
        {
            get  => $this->first . '_' . $this->second;
            set (string $value) {
                [$this->first, $this->second] = explode('_', $value);
            }
        }
    public function __construct(
        private string $first,
        private string $second
    ){}
}

PHP 8.3

<?php
class Locale
{
    public function __construct(
        private string $first,
        private string $second
    ) {}

    public function getLocale(): string
    {
        return $this->first . '_' . $this->second;
    }

    public function setLocale(string $value)
    {
        [$this->first, $this->second] = explode('_', $value);
    }
}

Asymetryczna Widoczność (Asymetric Visiblity) – precyzyjna kontrola dostępu

Nowa funkcjonalność pozwala na różnicowanie poziomu dostępu do właściwości – na przykład publiczny odczyt i prywatny zapis. To idealne rozwiązanie dla twórców frameworków, którzy chcą zapewnić bezpieczeństwo i elastyczność.

PHP 8.4

<?php
class Car
{
    public function __construct(
        public private(set) string $color,
    ) {  }

    public function paint(string $color)
    {
        $this->color = $color
        }
}

$car = new Car('red');
$car->paint('blue');
echo $car->color; //red

PHP 8.3

<?php
class Car
{
    public function __construct(
        public string $color,
    ) {  }

    public function paint(string $color): void
    {
        $this->color = $color;
    }

    public function getColor(): string
    {
        return $this->color;
    }
}

$car = new Car('red');
$car->paint('blue');
echo $car->getColor(); //allowed, red

Chcesz zobaczyć więcej praktycznych przykładów? Pobierz darmowy fragment ebooka 📥 lub Kup kurs php 🎓

Nowe funkcje tablicowe – prostsza praca z danymi

Funkcje takie jak array_find, array_find_key, array_any i array_all ułatwiają manipulację tablicami, co jest nieocenione przy tworzeniu dynamicznych komponentów frameworka.

PHP 8.4

<?php
$data = [1,2,3,5,7,9];
$x = array_find($data, fn(int $val) => $val > 5);//7
$any = array_any($data, fn(int $val) => $val >=9 );//true

PHP 8.3

<?php
$data = [1,2,3,5,7,9];

$x = null;
foreach ($data as $val)
{
    if($val > 5) {
        $x = $val;
        break;
    }
}

$any = false;
foreach ($data as $val)
{
    if($val >=9) {
        $any = true;
        break;
    }
}