wordpress在插件/主题/核心更新后似乎没有重置opcache。
为了解决这个问题,我在php中设置了。ini公司
opcache.validate_timestamps=1
所有工作正常,但
validate_timestamps
启用后,PHP将检查每个请求的文件时间戳,以降低性能。当它被禁用时,PHP文件永远不会检查更新的代码。wordpress更新代码时,新代码文件可能会与旧代码文件混合,结果未知。这太不安全了。
为什么wordpress不执行opcache_reset()
每次更新后?
或者。。。如果我能打电话opcache_reset
正在运行upgrader_process_complete
, 例如:
if( extension_loaded(\'Zend OPcache\') ){
add_action(\'upgrader_process_complete\', \'opcache_reset\', 1000, 0);
}
是否正确?
最合适的回答,由SO网友:Mark Kaplun 整理而成
几条评论
为了以防万一,您可能应该在调用函数之前检查PHP版本是否为5.5及以上版本(或者检查其是否存在,不确定原始APC中是否存在同名的等效函数)
您的优先级太高。实际上,您希望在所有其他插件完成升级后的任何操作后调用它,以防它们所做的操作会影响任何PHP文件。争取优先权PHP_INT_MAX -1
.
如果同时进行多个升级,您的代码实际上可能会被触发太多次,但除了性能受到轻微影响之外,我看不出有什么不好的地方。