В Doctrine2 заявили, что поведение мягкого удаления должно быть лучше реализовано как шаблон состояния Но не приводить ни одного примера этой реализации.
Как добиться поведения мягкого удаления с использованием шаблона состояния
Я думаю, что они относятся к фильтрам , которые доступны с версии 2.2:
Функциональность фильтра работает на уровне SQL.Сгенерирован ли SQL-запрос в Persister, во время отложенной загрузки, в дополнительных отложенных коллекциях или из DQL.Каждый раз, когда система выполняет итерацию по всем включенным фильтрам, добавление новой части SQL в качестве фильтра возвращает.
Библиотека DoctrineExtensions включает в себя поведение "soft-delete".Возможно, вы захотите взглянуть на их реализацию , чтобы увидеть, как она работает в деталях.