我使用 PHP 的 gettext 扩展已经有一段时间了,我对它的功能感到满意。例如,我想知道编写一个将字符串从.mo
文件缓存到 Memcached 服务器的类是否有意义。
我可以从 gettext 收集的缓存字符串中受益还是应该保持原样?
我使用 PHP 的 gettext 扩展已经有一段时间了,我对它的功能感到满意。例如,我想知道编写一个将字符串从.mo
文件缓存到 Memcached 服务器的类是否有意义。
我可以从 gettext 收集的缓存字符串中受益还是应该保持原样?
不,您无法从将.mo
文件缓存到 Memcached 等外部缓存中受益。本机 gettext 扩展具有自己的内置缓存。由于 PHP 的 gettext 函数仅从.mo
文件中检索翻译,因此 PHP 无法从 Memcached 服务器获取翻译。
唯一的选择是将.mo
文件中的字符串作为字符串数组缓存在 Memcached 服务器中,但这会使获取翻译的方法比本地方法慢,因此没有必要这样做。
使用本机 gettext,它有自己的缓存算法。使用外部缓存类加载您的代码可能会导致无用的代码,这会降低您的站点性能,而不是使其更快。此外,您已经浪费了编写外部缓存类的时间。
如果您使用的是本机 gettext 扩展名,则它已经在内部缓存 .mo 文件。你会在这里找到很多关于如何让它刷新的问题,因为它的缓存有时会非常激进。