class_exists
funkcja
Sprawdza, czy dana klasa jest zdefiniowana. Domyślnie uruchamia zarejestrowane autolodery (np. Composer), jeśli klasa nie jest jeszcze załadowana.
class_exists(string $class, bool $autoload = true): bool
class_exists sprawdza, czy klasa o podanej nazwie jest dostępna. Domyślnie drugi argument $autoload = true powoduje, że PHP uruchomi autoloader (np. skonfigurowany przez Composer z PSR-4) próbując załadować klasę przed odpowiedzią. Jeśli nie chcesz wyzwalać autoloadera — np. sprawdzasz klasę opcjonalną — przekaż false. Funkcja działa tylko dla klas; do interfejsów użyj interface_exists, do traitów — trait_exists.
<?php
declare(strict_types=1);
// Zakładamy autoloader Composera (vendor/autoload.php)
// Z autoloadingiem (domyślnie) — Composer spróbuje załadować klasę:
if (class_exists(\App\Service\PlatnoscService::class)) {
$serwis = new \App\Service\PlatnoscService();
$serwis->przetworz();
}
// Bez autoloadingu — tylko sprawdzamy, czy już załadowana:
if (class_exists('OptionalLogger', false)) {
// Użyj logera tylko jeśli jest dostępny
}
var_dump(class_exists('stdClass')); // bool(true) — wbudowana
var_dump(class_exists('BrakKlasy')); // bool(false)