2012-06-12 13 views
3

Symfony2에서 데이터를 캐시 할 수있는 가능성 (또는 외부 번들)이 있습니까?symfony2에서 데이터를 캐시하는 방법

예를 들어 파일 시스템에 간단한 키 - 값 저장을 사용하여 페이지 자체를 캐시하지 않고 응용 프로그램 내부의 데이터를 캐시합니다.

+0

또한보십시오 https://stackoverflow.com/questions/8893081/how-to-cache-in-symfony-2 – Czechnology

답변

0

지금은 Symfony2에서 캐싱을위한 유일한 해결책이 없습니다. 프레임 워크의 일부분은 Doctrine Common을 사용합니다.

는 Symfony2 경우 "표준"캐싱 솔루션에 대한 논의가 있지만 우리는 몇 시간을 기다려야 할 것이다 ...

+0

이제 교리의 캐싱 시스템은 부족 일반적인 https://github.com/doctrine/cache – gagarine

2

더 솔루션에 내장 없다,하지만 난 당신이 APC, Redis 또는 Memcache주는 것이 좋습니다 try (모든 메모리 내 데이터 저장소).

1

LiipDoctrineCacheBundle을 사용하면 Doctrine common의 캐시 드라이버를 Symfony 프로젝트에 통합 할 수 있습니다.

-1

잘 이해하면 동일한 세션을 더 많이 실행하지 않으려면 같은 세션에서 새 컨트롤러가 다시 호출 될 때 세션에 첨부 된 데이터를 저장하고 싶습니다 (예 : 데이터베이스에서 테이블 읽기).

당신은 당신의 컨트롤러에서 세션 시스템을 사용할 수 있습니다 :

<?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"은 같은 세션이 다음에 호출 될 때 액세스 할 수 있습니다.

"세션"은 PHP의 __SESSION 변수를 사용하므로 원하는 수명을 제공하려면 session.cookie_lifetime 및 session.gc_maxlifetime을 올바르게 설정해야합니다.

+1

세션은 캐시가 아닙니다! 그것을 남용하지 마십시오. 대신 파일 또는 메모리 캐시를 사용하십시오. 파일 시스템, memcache, reds 등 –

1

나는 winzouCacheBundle을 사용하고 있습니다. 다른 백엔드 (apc, file, memcache, array, xcache, zenddata)에 캐시 된 캐시 API를 제공합니다.

0

나는 DoctrineCacheBundle이 인 것으로 생각합니다.

DoctrineCacheBundle을 사용하면 Symfony 응용 프로그램이 Doctrine Cache 라이브러리를 통해 다른 캐싱 시스템을 사용할 수 있습니다.

Docs @ Symfony.com

Code @ Github

관련 문제