Interfejsy a typy sparametryzowane
Założenie: Pokażemy, jak wykorzystać interfejsy z typami sparametryzowanymi w PHP, aby zapewnić typ bezpieczeństwa i elastyczność kodu.
Krok po kroku:
- Definicja interfejsu z typem sparametryzowanym:
interface DataContainer { public function getData(): string; public function setData(string $data): void; }
Ten interfejs definiuje metodę `getData()` zwracającą string oraz `setData()` przyjmującą string.
- Implementacja interfejsu dla konkretnego typu:
class NameContainer implements DataContainer { private string $name; public function __construct(string $name) { $this->name = $name; } public function getData(): string { return $this->name; } public function setData(string $data): void { $this->name = $data; } }
Klasa `NameContainer` implementuje interfejs `DataContainer` i przechowuje imię jako string.
- Użycie klasy:
$nameContainer = new NameContainer("Jan"); echo $nameContainer->getData(); // Wyświetli "Jan" $nameContainer->setData("Anna"); echo $nameContainer->getData(); // Wyświetli "Anna"
Tutaj tworzymy instancję `NameContainer` i używamy metod zdefiniowanych w interfejsie.
Ten przykład pokazuje podstawowe zastosowanie interfejsów z typami sparametryzowanymi. Zachęcamy do dalszego zgłębiania tematu, aby lepiej zrozumieć ich możliwości i zastosowania w bardziej złożonych projektach.