APC кеш в Symfony2 за многоезичен сайт

Търся решението вече с часове, вече разгледах всички SO публикации по тази тема.

Това е моят проблем, имам многоезичен уебсайт. Имам 2 различни типа маршрути, френските и английските.

Проблемът е, че APC (в производствена среда) счита, че двата маршрута на конкретна страница са еднакви. Така че, например, ако отида на страницата на френски, след като отида на страницата на английски, моите променливи са на английски, така че преводите също...

Как мога да го поправя?

Може би има начин да се каже на APC "това са две различни страници"

Благодаря


person Community    schedule 29.09.2015    source източник
comment
Оставяте ни малко в неведение защо APC би направила такова нещо. Какво кешираш? Какви са вашите ключове за кеш паметта?   -  person marekful    schedule 29.09.2015
comment
Кеширам целия уебсайт, предполагам. Поставих framework: validation: cache: apc, query_cache_driver: apc и metadata_cache_driver: apc в моя config_prod.yml   -  person    schedule 29.09.2015
comment
Езикът част ли е от URL адреса? Ако да, как?   -  person jahller    schedule 29.09.2015
comment
Да, така е. Съхранявам URL връзката с LexikTranslationBundle. Но може би ще намеря решение, използвам функцията за отделяне на мениджъра на обекти и мога да получа обекта си с новия език. Не се сетих за кеша на Doctrine, но изглежда е така: $this->getDoctrine()->getManager()->detach($myEntity);   -  person    schedule 29.09.2015


Отговори (1)


Ето решението, което работи за мен. Мислех, че това е само APC кеша на Symfony2, но изглежда е кеша на Doctrine. И така, намерих функцията за отделяне на мениджъра на обекти. Правейки го, мога да получа своя обект с „освежени“ стойности, на добрия език

<?php
    private function myController($myEntity) {
        $this->getDoctrine->getManager()->detach($myEntity);
        // getting my entity again with the repository
    }
person Community    schedule 29.09.2015