Есть ли встроенная возможность (или внешний пакет) для кэширования данных в Symfony2?Как кэшировать данные в symfony2
Я не хочу кэшировать страницу, но данные внутри приложения, например, с помощью простого хранилища ключей -> в файловой системе.
Есть ли встроенная возможность (или внешний пакет) для кэширования данных в Symfony2?Как кэшировать данные в symfony2
Я не хочу кэшировать страницу, но данные внутри приложения, например, с помощью простого хранилища ключей -> в файловой системе.
Пока нет уникального решения для кэширования в Symfony2. Некоторые части рамки используют Doctrine Common.
Есть дискуссии о «стандартной» кэширования решения, если Symfony2, но нам придется подождать некоторое время ...
Теперь система кэширования доктрины из общий https://github.com/doctrine/cache – gagarine
Вы можете использовать LiipDoctrineCacheBundle для интеграции драйверов кэша из Doctrine, общих в ваш проект Symfony.
Если я хорошо понимаю, вы хотели бы сохранить данные (прикрепленные к сеансу) и перезагрузить их, когда один и тот же сеанс снова вызовет новый контроллер, чтобы избежать выполнения той же процедуры больше раз (например, прочитайте таблицу из базы данных).
Вы можете использовать систему сеанса в контроллерах:
<?php
namespace YourStuff\YourBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
class YourController extends Controller
{
$session = $this->get("session");
$variabile = 4;
$session->set("variableName",$variable); // setter
if ($session->has("variableName") // to check if the variable exists
{
$variableName = $session->get("variableName"); // getter
}
}
Это пример; «variableName» можно получить в следующий раз, когда будет вызываться тот же сеанс, если время жизни сеанса еще не истекло.
В «сеансе» используется переменная __SESSION для PHP, поэтому не забудьте правильно установить session.cookie_lifetime и session.gc_maxlifetime, чтобы дать желаемое время жизни.
Сессия не является кешем! Не злоупотребляйте им. Вместо этого используйте кеш файла или памяти, например. файловая система, memcache, reds и т. д. –
Я использую winzouCacheBundle. он предоставляет оптимизированный кеш-апи на разных бэкендах (apc, file, memcache, array, xcache, zenddata).
Я думаю, что DoctrineCacheBundle в настоящее время - путь.
DoctrineCacheBundle позволяет вашему приложению Symfony использовать различные системы кэширования через библиотеку «Кэш-память доктрины».
Смотрите также https://stackoverflow.com/questions/8893081/how-to-cache-in-symfony-2 – Czechnology