Я чувствую себя глупо, задавая этот вопрос, но я не могу найти четкий ответ нигде.Внесите параметр в объект в symfony2
У меня есть объект token
, который имеет, помимо прочего, creation_time
.
У меня есть параметр в parameters.yml
под названием token_lifespan
.
Для токена, если creation_time < (time() - token_lifespan)
, то срок годности истекло.
Проблема заключается в том, что я не могу найти хороший способ передать параметр token_lifespan
объекту. Я знаю, что смогу сделать что-то вроде:
$token->hasExpired($this->getParameter('token_lifespan'))
Но это очень нехорошо. Я смотрел на создание сервиса и инъекции зависимостей, как способ передать срок действия токена на токен, когда он создан, но я не могу понять, что я делаю.
Я делаю свои фишки с $token = new MyToken();
, и я получаю мои жетоны из доктрины так:
$this->getDoctrine()
->getRepository('MyBundle:MyToken')
->find($token_id);
Мне нужно сделать мое хранилище службы ли? Что-то вроде:
mytoken_repository:
class: MyBundle\Entity\MyToken
factory_service: 'doctrine.orm.default_entity_manager'
factory_method: 'getRepository'
calls:
- [setLifespan, ['%token_lifespan%']]
И что именно это означает? Я все еще создаю токены одинаково, с new MyToken()
? и просто сделать метод setLifespan
в классе MyToken
для хранения продолжительности жизни?
И, наконец, могу ли я получить токены обратно из Доктрины с $this->getDoctrine()...
? и что, если мне нужно использовать параметр token_lifespan
в моем классе репозитория?
Извините, там около миллиона вопросов. Я чувствую, что часть инъекции зависимостей в документах Symfony предполагает, что я знаю гораздо больше о структуре, чем в настоящее время.
Кроме того, я полностью согласен, он технически не отвечает на его вопрос :) – DerStoffel
Ну, его вопрос состоит из нескольких вопросов, поэтому я взял на себя смелость написать ответ, который мог бы помочь ему самому ответить на все: P –
Итак, с точки зрения передового опыта, я должен поместить всю бизнес-логику своей сущности в сервисы, оставив объекты как модели данных базы данных? Только что написав это, это звучит очень логично! – jxmallett