2016-07-27 3 views
0

CodeIgniterのコードの詳細を確認していましたが、DBクエリとビューで使用されているキャッシング手法が奇妙な不一致を見つけました。Codeigniterのクエリキャッシングがファイルロックを使用していない

ビューのキャッシュ(出力クラスによる)コード署名者はファイルロックを使用します。これは、複数の同時ユーザーが同じキャッシュファイルに同時に誤って書き込みを行わないようにするためです。

これは私にとって絶対的な意味を持っています。問題は、(DBCacheクラスを介した)DBクエリキャッシング手法がこの手法を使用していないように見えることです。

これは意図的ですか?データベースクエリのファイルロックが必要ないのはなぜですか(前述の同じ問題が発生する可能性があるとします)。これはコードの単純なバグですか?

答えて

1

自分自身の答えを見つけました。

データベースクエリもファイルロックを使用することが判明しました。

CodeigniterのDBCacheクラスはFileヘルパーを使用します.Fileヘルパーはwrite_file()関数でファイルロックを使用します。

出力キャッシュは、これをファイルヘルパーなしでより明示的に行います。

関連する問題