Интерфейс задаёт контракт методов без реализации (кроме некоторых оговорок/констант); класс реализует через implements.
Разбор
- Класс может реализовать несколько интерфейсов.
- Полезен для DIP и тестирования.
- С PHP 8 — типы в сигнатурах интерфейса.
- Не путать с abstract class.
Итог
Интерфейс — контракт поведения без привязки к конкретной базе.