Türchen 15: PHP 8 Constructor Property Promotion

Wenn man Properties in einer PHP-Klasse definiert und diese über den Constructor reingereicht werden, hat man das vor PHP 8 immer so gemacht:

class Employee
{
  public string $firstname;
  public string $lastname;
  protected string $email;
  private DateTimeImmutable $birthday;

  public function __construct(
    string $firstname,
    string $lastname,
    string $email,
    DateTimeImmutable $birthday
  ) {
    $this->firstname = $firstname;
    $this->lastname = $lastname;
    $this->email = $email;
    $this->birthday = $birthday;
  }
}

Das ist übersichtlich, verständlich und kann man auch mit PHP 8 immer noch so machen. Mit dem Release der Version 8 von PHP haben wir aber zusätzlich die „Constructor Property Promotion“ bekommen, wodurch wir das definieren und reinreichen der Properties noch kürzer und noch viel übersichtlicher gestalten können. Nämlich genau so:

class Employee
{
  public function __construct(
    public string $firstname,
    public string $lastname,
    protected string $email,
    private DateTimeImmutable $birthday
  ) {}

  // z.B. $this->firstname automatisch verfügbar
}

Dieses Türchen hat gar nicht so viel Code, wie sonst immer, aber irgendwie ist „wenig Code“ ja dieses mal genau der Witz an der Sache. Deswegen hoffen wir, dass wir euch was Neues zeigen konnten und wünschen euch wie immer: Happy Coding!

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

crafted by code-x 💚
Nach oben scrollen