У меня возникли проблемы с пониманием ключевой концепции Symfony 2.Где помещать сущности «вспомогательные функции»?
Я работаю на веб-сайте, где пользователи могут создавать контент, который затем может быть отправлен другим людям с использованием секретного URL-адреса. Что-то вроде www.yoursite.com/{secret-identifier-string}.
я планирую делать это следующим образом:
- Упорство содержание пользователя.
- Создайте строку идентификатора, содержащую идентификатор содержимого и временную метку создания (или любое другое содержимое, которое никогда не будет изменяться снова, в качестве дополнительной функции безопасности) с использованием метода двустороннего шифрования (например,
mcrypt_encrypt
). - Создайте ссылку и отобразите ее пользователю, чтобы отдать ее
- Всякий раз, когда вызывается URL-адрес, строка идентификатора будет расшифрована. Если предоставленная временная метка соответствует соответствующему значению строки идентификатора содержимого, страница будет отображаться.
Мои вопросы:
- Считаете ли вы это хорошая процедура в целом?
- Внешний вид Symfony2 Я бы создал вспомогательные методы, такие как
getIdentifierString()
иgetContentPageLink()
. Где я могу поместить соответствующий код в Symfony2? Он входит в класс сущности? Если это так, у меня возникают проблемы, потому что я использую класс сервиса для шифрования. Услуга доступна только в контроллере.
Большое спасибо!
ли идентификатор должен быть двухстороннее зашифрованную строку с? Почему бы просто не создать длинную случайную строку (односторонний хэш содержимого даже) и сохранить это как индекс? В чем причина/преимущество шифрования и дешифрования идентификатора и метки времени? – MDrollette
Я вижу преимущество в том, что вы не генерируете ненужные данные, которые должны храниться в базе данных. – sprain