// Анонимный класс - одноразовый класс без имени
$logger = new class implements LoggerInterface {
public function log(string $msg): void {
echo $msg;
}
};
// Полезно в тестах для создания mock/stub
$mock = new class extends AbstractRepository {
public function find(int $id): ?Entity {
return new Entity(id: $id, name: 'test');
}
};
// Можно передавать зависимости через конструктор
$handler = new class($db) {
public function __construct(private DB $db) {}
public function handle(): void { /* ... */ }
};Используются для quick implementations, тестов, одноразовых стратегий.