Глосарій

Інтерфейс (Interface)

Інтерфейс — контракт, який описує, що клас повинен вміти робити, але не як. Клас, що реалізує інтерфейс, зобов'язаний реалізувати всі його методи. Інтерфейс не має реалізації — лише сигнатури.

Навіщо потрібен

Інтерфейс дозволяє писати код, який залежить від абстракції, а не від конкретного класу. Можна підставити будь-яку реалізацію, яка відповідає контракту. Це основа Dependency Injection і тестування.

Приклад

interface Logger {
  public function log(string $message): void;
}

class FileLogger implements Logger { ... }
class NullLogger implements Logger { ... }

Interface vs Abstract Class