2013-04-30 2 views
0

Я хочу, чтобы переменная привязана к области приложения (в java, которая была бы областью приложения).Переменная, привязанная ко всему приложению через запросы

Я думал, что обслуживание должно быть полезным, чтобы достичь моей цели.

Я создал тестовый сервис

<?php 

namespace Acme\MyBundle\Service; 

class test { 

    public $count; 

    public function __construct() { 
     $this->count = 0; 
    } 

    public function addCount() { 
     $this->count++; 
    } 

} 

который я объявленный в services.yml

acme.my.service.test: 
     class: Acme\MyBundle\Service\test 

Я называю это в моем контроллере

public function testAction() { 
     $this->get('acme.my.service.test')->addCount(); 
     return $this->render('AcmeMyBundle:Test:test.html.twig'); 
    } 

Но когда я получить его в моем twig, значение равно 1, независимо от того, насколько я обновляюсь или перехожу с несколькими сеансами на url, связанном с моим testAction. => Это означает, что каждый раз вызывается конструктор.

Так это правильный способ сделать? Я думал, что службы были созданы один раз и повторно использованы, но я могу ошибаться.

Не могли бы вы просветить меня?

Спасибо, copndz

+0

обслуживание [без гражданства] (https://igor.io/2013/03/31/stateless-services.html), "повторно" означает, что вы всегда получает то же самое экземпляр из DIC – Federkun

+0

, если он без гражданства, это не тот же экземпляр, не так ли? – copndz

+1

Вы пытались сохранить счет на сеанс пользователя? Или в базу данных, если счетчик используется для всех пользователей. – jaudette

ответ

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