2011-12-23 10 views
0

私は現在、Zend FrameworkPHP 5.3というWebアプリケーションを開発中です。 configsとマッピング情報(+ - 1500行)を含むXMLファイルがあります。各リクエストで、xpathクエリを実行して、そのXMLファイルから情報を取得します。 XMLファイルにある情報は静的であり、アプリケーションの展開後も変更されません。XMLデータをキャッシュするPHPファイルを生成する

最初のリクエストで静的な配列にXML情報を含むPHPファイルを生成し、その後、そのリクエストに応じてそのPHPファイルをロードして、XMLでクエリを実行する代わりに情報を取得することをお勧めします。

答えて

1

解析された設定ファイルをソースファイルとしてvar_exportでキャッシュすることができます。

リソースをキャッシュするためのコードを生成することは、Zend Frameworkのいくつかの場所、たとえばオートローダーで実装されているので、それは良い方法です。

シリアライズ(SimpleXMLオブジェクトではなく配列をシリアル化してください)または多かれ少なかれ同一の結果を保存するZend_Cacheをキャッシュする別の方法もあります。

1

デプロイ後にXMLが変更されないので、必要に応じて生産システムではなく、ローカルのdev envでそのXMLを変換するのが最善であると思います。検証なしで自動的に組み込まれる生産システム上でソースを生成するのは良い考えではありません。

私はXSLTに詳しくはありませんが、そのXMLの具体的な構造によれば、あなたにとってはオプションかもしれません。

+0

私が探していたのはsymfony 2のphpダンパーのようなものでした。彼らはそれを使ってDIコンテナの設定をキャッシュしました。 [Symfony Service Container](http://fabien.potencier.org/article/16/symfony-service-container-the-need-for-speed)。私はそれが良い習慣であるかどうかと、PHPで中規模の静的なファイルをキャッシュして、毎回の要求でそれを解析しないようにするベストプラクティスが何かを考えていただけです –

関連する問題