Promocja konstruktora to bardzo fajna sztuczka w programowaniu obiektowym PHP, pozwalająca nam uprościć nasz kod. Warto ją poznać i stosować.
Oto nasza przykładowa klasa reprezentująca URL i kod przekierowania:
class URL {
public $url;
public $response_code;
public function __construct($url, $response_code=302)
{
$this->url = $url;
$this->response_code = $response_code;
}
}
$url = new URL("https://www.google.com", 302);
Możemy to znacznie uprościć poprzez promocję konstruktora:
<?php
class URL {
public function __construct(
public $url,
public $response_code=302){}
}
$url = new URL("https://www.google.com", 302);
To samo, ale zapisane szybciej.
Możemy też łączyć oba podejścia – klasyczne i z promocją konstruktora:
class MyClass
{
public string $b;
public function __construct(
public string $a,
string $b,
) {
$this->b = $b;
}
}
Ważne jest, że wartości promowane nie mogą być poza nawiasami, zaś wewnątrz nawiasów muszą mieć access modifier (tutaj public).