Abstraktne metode traitov v OOP v PHP

V traitih lahko nekatere metode razglasimo za abstraktne. V tem primeru mora razred, ki uporablja ta trait, implementirati takšno metodo. Pri tem abstraktne metode traita ne smejo biti zasebne.

Poglejmo si na primeru. Recimo, da imamo takšen trait:

TestTrait.php<?php
  trait TestTrait
  {
    public function method1()
    {
      return 1;
    }
    
    abstract public function method2();
  }
?>

Recimo, da naš trait uporablja razred Test. Prisotnost abstraktne metode v traitu bo zahtevala od programerja, da jo implementira v razredu, sicer bo prišlo do napake PHP.

Naredimo razred Test skupaj z metodo method2:

Test.php<?php
  class Test
  {
    use TestTrait; // uporabimo trait
    
    // Implementiramo abstraktno metodo:
    public function method2()
    {
      return 2;
    }
  }
  
  new Test;
?>
Задание 1

Kopirajte kodo mojega traita TestTrait in kodo mojega razreda Test. Izbrišite iz razreda metodo method2. Prepričajte se, da bo odsotnost njene implementacije povzročila napako PHP.