2014-10-20 3 views
0

Возможно ли хранить данные в одной частной переменной контроллера (Symfony2)?Кэш-переменная в контроллере в Symfony2

Один пример:

/** 
* Class CatsController 
* 
* @Route("cats") 
* @Cache(expires="+600 seconds", public=true) 
* @package oTeuGato\AppBundle\Controller 
*/ 
class CatsController extends Controller { 

/** 
* @var $advertisements Advertisement[] 
*/ 
private $advertisements; 

/** 
* Index advertisements page 
* 
* @Route("", name="oTeuGato_Cats") 
* @Method("GET") 
* @return Response 
*/ 
public function indexAction() 
{ 
    $this->advertisements = ....(Use a service for gets advertisements) 
} 

/** 
    * Index advertisements by page 
    * 
    * @Route("/{id}", requirements={"id" = "\d+"}, defaults={"id" = 1}, name="oTeuGato_Cats_ByPage") 
    * @Method("GET") 
    * @return Response 
    */ 
public function indexByPageAction(){ 
    .... 
} 

В этом примере всякий раз, когда кто-то называет URL: кошки/1 в контроллере я должен их иметь все объявления о ранее называемого метода (/ кошки).

Возможно ли это?

Примечание: Я включил кеш в файле app.php и app_dev.php.

Спасибо за помощь и извините за мой английский);

ответ

1

Symfony не предоставляет механизм для того, что вы описываете. Но любое решение, которое будет работать для PHP в более общем плане, будет работать для Symfony.

Это зависит от того, хотите ли вы запомнить рекламные объявления для каждого пользователя или для всех пользователей. Если вы хотите запомнить его для каждого пользователя, используйте сеансы, как предложил Гарет Паркер. Если вы хотите запомнить его для всех пользователей, вам понадобится кэширование пользователей APC, memcache или другое хранилище ключей.

Возможно, вам удастся использовать кэш результатов Doctrine. См. http://doctrine-orm.readthedocs.org/en/latest/reference/caching.html

0

Нет, это не так. Во всяком случае, не так. Вместо этого вы должны использовать sessions. Сессии - это то, что вы используете для хранения переменных между запросами. Here приведены некоторые примеры

Смежные вопросы