Добавляет еще одну зависимость (себя).
Усложняет тестирование.
Делает зависимости неявными.
Ухудшает навигацию (конечно, можно обойти всякими /** var… */, но тогда засоряется код).
Руками писать wsdl — моветон имхо. Каждое добавление/изменение метода — нужно править не очень интуитивный текст. Лучше определить фасад и по нему генерировать wsdl.
Что значит через простые сервисы? Их же тоже надо как-то внедрять.
Пример: набор правил с параметрами, с единым интерфейсом выполнения/применимости, но с разными зависимостями. Правила сохраняются/загружаются как сущности Doctrine. И вот, чтобы в загруженных правилах уже были внедрены нужные сервисы и нужна такая штука.
Усложняет тестирование.
Делает зависимости неявными.
Ухудшает навигацию (конечно, можно обойти всякими /** var… */, но тогда засоряется код).
Не стоит его так использовать. Используйте DI.
Если надо, можно точные номера версий использовать
Пример: набор правил с параметрами, с единым интерфейсом выполнения/применимости, но с разными зависимостями. Правила сохраняются/загружаются как сущности Doctrine. И вот, чтобы в загруженных правилах уже были внедрены нужные сервисы и нужна такая штука.