XREAサーバでSymfonyを動かした場合の問題



当然ながら本番環境では、

“/myproject/apps/myapp/config/settings.yml”

prod:
  .settings:
    cache    on

“/myproject/apps/config/cache.yml”

default:
  enabled:     on
  with_layout: false
  lifetime:    86400

としてキャッシュ機能を有効にし、レスポンスの向上を図りたいわけですが、

“/myproject/apps/myapp/modules/mymodule/template/searchSuccess.php”

<?php echo form_tag('@search', 'method=get') ?>
<?php echo input_tag('query', htmlspecialchars($sf_params->get('query'), ENT_QUOTES), array('style' => 'width: 150px')) ?>&nbsp<?php echo submit_tag('検索') ?>
</form>

のように、GETメソッドを利用したformを含むtemplateをキャッシュすると、

$sf_params->get('query')

で取得したvalueがなぜか表示されません。ちなみに、POSTメソッドを使った場合は問題ありませんでした。

対処療法的ですが、

“/myproject/apps/myapp/modules/mymodule/config/cache.yml

search:
  disabled:    off

として、formのテンプレートはキャッシュをOffにすれば、正常に動作します。
根本的な解決をするためには、symfonyのコードを読まないと、なんともできないですね。でも、コード量は半端じゃなく膨大ですから、気合いを入れて取りかからないと、時間の無駄になってしまいそう。暇を見つけて、チャレンジしてみたいと思います。

Leave a Reply