Interfejsy a typy resource
Założenie: Pokażemy, jak wykorzystać typ resource w definicji interfejsu PHP, aby określić, że metoda może pracować z różnymi zasobami, takimi jak uchwyty do plików lub połączenia z bazą danych.
Krok po kroku:
- Definicja interfejsu: Tworzymy interfejs
ResourceHandler, który definiuje metodęhandleResourceprzyjmującą argument typuresource. - Implementacja interfejsu: Tworzymy klasę
FileHandler, która implementuje interfejsResourceHandleri obsługuje pliki. - Użycie interfejsu: Tworzymy instancję
FileHandleri używamy jej metodyhandleResource.
interface ResourceHandler {
public function handleResource(resource $resource): void;
}
Ten kod definiuje interfejs z metodą, która oczekuje argumentu typu resource. resource jest typem, który reprezentuje zasób systemowy.
class FileHandler implements ResourceHandler {
public function handleResource(resource $fileHandle): void {
// Operacje na pliku, np. odczyt danych
$data = fread($fileHandle, 1024);
echo "Odczytano z pliku: " . $data;
}
}
Klasa FileHandler implementuje metodę handleResource, która przyjmuje uchwyt do pliku (resource) i wykonuje na nim operacje.
$file = fopen("plik.txt", "r");
if ($file) {
$handler = new FileHandler();
$handler->handleResource($file);
fclose($file);
} else {
echo "Błąd otwarcia pliku.";
}
Tutaj otwieramy plik, tworzymy obiekt FileHandler i przekazujemy uchwyt do pliku do metody handleResource. Pamiętaj o zamknięciu pliku za pomocą fclose().
Ten przykład pokazuje, jak używać typu resource w interfejsach, co pozwala na elastyczne zarządzanie różnymi zasobami systemowymi w sposób obiektowy. Zachęcamy do dalszego zgłębiania tematu interfejsów i programowania obiektowego w PHP!