Глоссарий

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

Интерфейс — контракт, описывающий, что класс должен уметь делать, но не как. Класс, реализующий интерфейс, обязан реализовать все его методы. Интерфейс не содержит реализации — только сигнатуры.

Зачем нужен

Интерфейс позволяет писать код, зависящий от абстракции, а не от конкретного класса. Можно подставить любую реализацию, удовлетворяющую контракту. Это основа Dependency Injection и тестирования.

Пример

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

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

Interface vs Abstract Class