profileRyan KesPGP keyI build stuffEmailGithubTwitterLast.fmMastodonMatrix

PHP constructor property promotion

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,
    ) {}
}

Footnotes