2013-05-05 2 views
27

PHP에 익숙하지 않아 PHP 및 symfony2 프레임 워크에서 개발 된 응용 프로그램이 있습니다. html 파일을 변경했습니다. 변경 사항은 페이지를 새로 고칠 때 반영되지 않습니다. symfony2에서 나뭇 가지 캐시를 다시로드하는 방법

02. I tried to remove the twig folder from /protected/cache/ page it self not loading.

01. I restarted the server No luck.

친절하게 내가 배포 Tomcat 서버를 사용하고, 조언한다.

참고 : 서버에 symfony2 명령 줄을 구성하지 않았습니다.

+0

당신은 서버에 FTP에 액세스 할 수 있습니까? – PMoubed

답변

34

가장 간단한 방법은, 명령을 입력 :

rm -rf app/cache/* 

요점은 : 필요할 때 app/cache/에있는 모든 파일을 자유롭게 제거 할 수 있습니다, 그들은 다시 생성된다.

rm -rf app/cache/<environment>/twig 

이 요구 사항에 따라 dev, prod, 또는 test에 의해 <environment> 교체 :

당신이 정말로 단지 나뭇 가지 캐시를 지우려면

.

+0

다른 번들 템플릿을 덮어 쓰고 새 번들 템플릿을 찾으려면 templates.php도 삭제해야합니다. –

27

새로운 Twig_Environment 인스턴스를 만들 때 옵션 배열을 생성자의 두 번째 인수로 전달할 수 있습니다. 그 중 하나는 auto_reload입니다. Twig로 개발할 때 소스 코드가 변경 될 때마다 템플릿을 다시 컴파일하는 것이 유용합니다. auto_reload 옵션에 값을 제공하지 않으면 debug 값에 따라 자동으로 결정됩니다.

설정 auto_reloadtrue 할 수 :

$twig = new Twig_Environment($loader, array('auto_reload' => true)); 

나뭇 가지의 개발자를위한 문서 : http://twig.sensiolabs.org/doc/api.html#environment-options

10

나는 비슷한 문제가 있었지만 캐시 폴더를 삭제하면 내 템플릿과 I에 미치는 영향은 없습니다 이유를 모르겠다. 어떻게 지금 내 문제를 해결하는 것 같습니다 내 config_dev.yml에 다음 코드입니다 : 명령 모든 시간을 사용하지 않도록

twig: 
    cache: false 

어쩌면이 또한 당신을위한 솔루션입니다.

참고 :

TwigBundle Configuration

Twig Environment Options

+0

좋은 생각 나뭇 가지가 항상 재 컴파일되지 않는 경우가 있는데, auto_reload가 가끔 무시됩니다. 그래서 지금은 캐시없이갑니다. – John

2

당신이 나뭇 가지 캐시와 같은 템플릿은 .PHP 파일로 구성 새로 고침하지 않습니다 나뭇 가지의 캐시 폴더를 삭제/기타 유사한 캐싱을 opcache 사용하는 경우. 나뭇 가지의 캐시 폴더를 삭제하고 다음을 포함하는 PHP 파일을 실행해야합니다.

opcache_reset();

1

웹 폴더에있는 app.php 파일을 일부 변경해야합니다.

변경 :

$kernel = new AppKernel('prod', true); 

원하는 경우 캐시를 지우 :

$kernel = new AppKernel('prod', false);  

합니다.

0

이 같은 기능을 추가 할 수 있습니다

public function renderView($view, array $parameters = array()) 
{ 
    $loader = new \Twig_Loader_Filesystem($this->container->getParameter("template_path")); 
    $twig = new \Twig_Environment($loader, array('auto_reload' => true, 
     'cache' => false 
    )); 

    /////////////////////add a translate filter/////////////////////// 
    $getTextdomain = new \Twig_SimpleFilter('trans',function ($string){ 
     return $this->container->get('translator')->trans($string); 
    }); 

    $twig->addFilter($getTextdomain); 
    ////////////////////////////////////////////////////////////////// 

    ///////////////////////////Add an extension twig////////////////// 
    $twig->addExtension(new Extension()); 
    ////////////////////////////////////////////////////////////////// 

    return $twig->render($view, $parameters); 
} 
관련 문제