Description
Introduced in PHP 8.0, constructor property promotions1 add new syntatctic sugar to create value & data transfer objects.
Syntax
class Money
{
    public Currency $currency;
 
    public int $amount;
 
    public function __construct(
        Currency $currency,
        int $amount,
    ) {
        $this->currency = $currency;
        $this->amount = $amount;
    }
}can be replaced with
class Money
{
    public function __construct(
        public Currency $currency,
        public int $amount,
    ) {}
}