Сильно зависит от конкретной реализации...
Если используешь контейнер-сервисменеджер, типа нового Зендовского, там таки да, есть смысл ДЛЯ ВСЕХ сервисов, что гонятся через контейнер написать интерфейсы. Фактически они определяют твой внутренний API и конечному пейсателю модулей будет пофиг, а на чем там конкретно написано ядро: Зенд, Симфония, или Ларавель или хз что еще...
Главное - ты запрашиваешь из контейнера интерфейс, а он уже выдаст тебе его реализацию.