false, 'can_reset' => false, 'memory_used' => 'N/A', 'memory_free' => 'N/A', 'hit_rate' => 'N/A', 'cached_files' => 0, ); } $data = @opcache_get_status( false ); if ( ! is_array( $data ) ) { return array( 'enabled' => true, 'can_reset' => self::can_reset(), 'memory_used' => 'Restricted', 'memory_free' => 'Restricted', 'hit_rate' => 'Restricted', 'cached_files' => 0, ); } return array( 'enabled' => true, 'can_reset' => self::can_reset(), 'memory_used' => isset( $data['memory_usage']['used_memory'] ) ? wpsco_format_size( $data['memory_usage']['used_memory'] ) : 'N/A', 'memory_free' => isset( $data['memory_usage']['free_memory'] ) ? wpsco_format_size( $data['memory_usage']['free_memory'] ) : 'N/A', 'hit_rate' => isset( $data['opcache_statistics']['opcache_hit_rate'] ) ? round( $data['opcache_statistics']['opcache_hit_rate'], 1 ) . '%' : 'N/A', 'cached_files' => $data['opcache_statistics']['num_cached_scripts'] ?? 0, ); } /** * Reset OPcache. * * @return array */ public static function reset() { if ( ! self::is_enabled() ) { return array( 'status' => 'not_available', 'message' => __( 'PHP OPcache is not enabled on this server.', 'speednest' ), ); } if ( ! self::can_reset() ) { return array( 'status' => 'disabled_function', 'message' => __( 'opcache_reset() is disabled by hosting provider in php.ini.', 'speednest' ), ); } $success = @opcache_reset(); return array( 'status' => $success ? 'cleared' : 'error', 'message' => $success ? __( 'PHP OPcache reset successfully.', 'speednest' ) : __( 'Failed to reset PHP OPcache.', 'speednest' ), ); } }