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ęhandleResource
przyjmującą argument typuresource
. - Implementacja interfejsu: Tworzymy klasę
FileHandler
, która implementuje interfejsResourceHandler
i obsługuje pliki. - Użycie interfejsu: Tworzymy instancję
FileHandler
i 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!