User. Я знаю, как это сделать вне сущности и потом передать в метод setPassword() уже хешированную строку. Но это приводит к тому, что каждый раз когда тебе это нужно делать, ты должен помнить о том, что ты не можешь просто взять и положить plainPassword в метод $user->setPassword(). Т.е., каждый раз тебе об этом нужно помнить.
Делать это внутри метода setPassword() тоже не правильно, т.к. нарушается принцип инверсии зависимости и сущность начинает зависеть от какого-то энкодера.
Остается только 1 вариант. Делать это через Doctrine Events. Поправьте меня, если Я не прав?
Если прям упороться, можно завести DTO Password. И в setPassword разрешать только ее передавать.
Обсуждают сегодня