Symfony: установить cookie из модели? - PullRequest
1 голос
/ 28 июня 2011

Можно ли установить (или получить) файлы cookie со слоя модели?

Если уровень модели предназначен для «бизнес-логики», то необходимая логика требует небольшого взаимодействия с запросом и ответом.

Ответы [ 2 ]

6 голосов
/ 28 июня 2011

Я предлагаю вам обработать и сохранить значение cookie в вашей модели:

class ModelTable
{
  protected $cookie = null;

  public function getCookie()
  {
    return $this->cookie;
  }

  public function setCookie($value)
  {
    $this->cookie = $value;
  }
}

И использовать postExecute вашего действия для установки cookie:

class yourActions extends sfActions
{
  public function executeIndex(sfWebRequest $request)
  {
    ModelTable::getInstance()->setCookie('bla');
  }

  public function postExecute()
  {
    $cookie = ModelTable::getInstance()->getCookie();
    $this->getResponse()->setCookie('name', $cookie, time() + 24 * 3600);
  }
}

Всегда лучше придерживатьсяМодель MVC: контроллер вызывает модель для получения информации и построения ответа, а не наоборот.

1 голос
/ 28 июня 2011

Вы всегда можете использовать sfContext::getInstance()->getResponse(), чтобы получить экземпляр для sfWebResponse.В этом случае вы можете вызвать метод setCookie().(или цепочка напрямую).

Но будьте осторожны: вы никогда не узнаете наверняка, был ли установлен cookie (в зависимости от действия в контроллере), так что, возможно, есть лучший дизайн?*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...