私はしばらく PHP の gettext 拡張機能を使用してきましたが、その機能には満足しています。.mo
たとえば、文字列をファイルから Memcached サーバーにキャッシュするクラスを作成する意味があるかどうか疑問に思っていました。
gettext によって収集された文字列をキャッシュすることでメリットが得られますか、それともそのままにしておく必要がありますか?
私はしばらく PHP の gettext 拡張機能を使用してきましたが、その機能には満足しています。.mo
たとえば、文字列をファイルから Memcached サーバーにキャッシュするクラスを作成する意味があるかどうか疑問に思っていました。
gettext によって収集された文字列をキャッシュすることでメリットが得られますか、それともそのままにしておく必要がありますか?
.mo
いいえ、 Memcached などの外部キャッシュにファイルをキャッシュしてもメリットはありません。ネイティブの gettext 拡張機能には、独自のキャッシュが組み込まれています。PHP の gettext 関数は.mo
ファイルからのみ翻訳を取得するため、PHP が Memcached サーバーから翻訳を取得することは不可能です。
唯一のオプションは、.mo
ファイルの文字列を文字列配列として Memcached サーバーにキャッシュすることですが、それでは翻訳を取得する方法がネイティブのものよりも遅くなるため、それを行う意味がありません。
ネイティブの gettext を使用してください。独自のキャッシュ アルゴリズムがあります。外部キャッシング クラスを使用してコードを読み込むと、役に立たないコードが生成される可能性があり、サイトのパフォーマンスが向上するどころか低下します。さらに、外部キャッシング クラスを作成する時間はすでに失われています。
ネイティブの gettext 拡張機能を使用している場合、.mo ファイルは既に内部にキャッシュされています。キャッシュが非常にアグレッシブな場合があるため、更新する方法について多くの質問がここにあります。