2013-05-05 12 views
27

私はPHPには新しいので、PHPとsymfony2フレームワークで開発されたアプリケーションがあります。 私はhtmlファイルを変更しましたが、ページを更新するときに変更が反映されません。symfony2のキャッシュをリロードする方法

01. I restarted the server No luck.

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

親切に私が展開するTomcatサーバーを使用しています、お勧めします。

注:サーバ上でsymfony2コマンドラインを設定していません。

+0

サーバーへのFTPアクセスを持っていますか? – PMoubed

答えて

34

最も簡単な方法は、コマンドを入力します。

rm -rf app/cache/* 

ポイントは次のとおりです。必要なときにapp/cache/内のすべてのファイルを自由に取り外すことができ、彼らは再生成されます。

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

があなたの要件に応じてdevprod、またはtestにより<environment>を交換してください:

あなたが本当に唯一の小枝のキャッシュをクリアしたい場合は

+0

他のバンドルテンプレートを上書きして新しいバンドルテンプレートを探したい場合は、templates.phpも削除する必要があります。 –

27

新しいTwig_Environmentインスタンスを作成するときは、オプションの配列をコンストラクタの第2引数として渡すことができます。そのうちの1つは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

よくいいアイデア twigが常に再コンパイルされないようなケースもありますが、auto_reloadは時々無視されます。だから私はキャッシュなしで行く。 – John

2

あなたは小枝のキャッシュとしてテンプレートのみ.phpファイルで構成されて更新されません小枝のキャッシュフォルダを削除、/他の類似のキャッシングをopcache使用している場合。 twigのキャッシュフォルダを削除する必要があります+以下を含むPHPファイルを実行してください:

opcache_reset();

1

webフォルダにあるapp.phpファイルにいくつかの変更を加える必要があります。

変更:

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

へ:

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

としたい場合は、キャッシュをクリア。

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); 
} 
関連する問題