Как насчет того, чтобы сохранить sfDoctrineGuard как есть, используя существующее поле имени пользователя, но сохранив в нем электронные письма. Ваши пользователи будут тогда входить со своими электронными письмами. Длина поля по умолчанию - VARCHAR (128), что достаточно для любого письма. Если я правильно помню, единственное, что вам нужно настроить - это метка формы для регистрации sfguard, входа и т. Д. (Где бы вы ни отображали). Вы бы просто сказали «Введите адрес электронной почты здесь» вместо того, чтобы сказать «Введите имя пользователя здесь».
Единственным недостатком является то, что вы теряете «имя пользователя», но вы всегда можете поместить его в отдельный профиль, связанный с sfGuardUser.
Если вам не нравится такой подход, вы всегда можете настроить код sfDoctrineGuardPlugin напрямую, но это, вероятно, вызовет некоторую головную боль.