HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux wordpress-ubuntu-s-2vcpu-4gb-fra1-01 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/delta/wp-content/plugins/w3-total-cache/SystemOpCache_Core.php
<?php
/**
 * File: SystemOpCache_Core.php
 *
 * @package W3TC
 */

namespace W3TC;

/**
 * Class SystemOpCache_Core
 */
class SystemOpCache_Core {
	/**
	 * Checks if opcode caching is enabled.
	 *
	 * This method verifies if either Zend OPcache or APCu OPcache is enabled
	 * on the server.
	 *
	 * @return bool True if opcode caching is enabled, false otherwise.
	 */
	public function is_enabled() {
		return Util_Installed::opcache() || Util_Installed::apc_opcache();
	}

	/**
	 * Flushes the opcode cache.
	 *
	 * Clears the opcode cache for the currently enabled caching mechanism
	 * (either Zend OPcache or APCu OPcache). If no supported opcode caching
	 * mechanism is found, it returns false.
	 *
	 * @return bool True if the cache was successfully cleared, false otherwise.
	 */
	public function flush() {
		if ( Util_Installed::opcache() ) {
			return opcache_reset();
		} elseif ( Util_Installed::apc_opcache() ) {
			$result  = apc_clear_cache(); // that doesnt clear user cache.
			$result |= apc_clear_cache( 'opcode' ); // extra.
			return $result;
		}

		return false;
	}

	/**
	 * Flushes the opcode cache for a specific file.
	 *
	 * This method attempts to invalidate the opcode cache for a given file
	 * by first resolving its path and then using the appropriate caching
	 * function (e.g., `opcache_invalidate` or `apc_compile_file`). If the file
	 * cannot be resolved or the cache cannot be invalidated, it returns false.
	 *
	 * @param string $filename The relative or absolute path to the file.
	 *
	 * @return bool True if the file cache was successfully invalidated, false otherwise.
	 */
	public function flush_file( $filename ) {
		if ( file_exists( $filename ) ) { // phpcs:ignore Generic.CodeAnalysis.EmptyStatement.DetectedIf
		} elseif ( file_exists( ABSPATH . $filename ) ) {
			$filename = ABSPATH . DIRECTORY_SEPARATOR . $filename;
		} elseif ( file_exists( WP_CONTENT_DIR . DIRECTORY_SEPARATOR . $filename ) ) {
			$filename = WP_CONTENT_DIR . DIRECTORY_SEPARATOR . $filename;
		} elseif ( file_exists( WPINC . DIRECTORY_SEPARATOR . $filename ) ) {
			$filename = WPINC . DIRECTORY_SEPARATOR . $filename;
		} elseif ( file_exists( WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . $filename ) ) {
			$filename = WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . $filename;
		} else {
			return false;
		}

		if ( function_exists( 'opcache_invalidate' ) ) {
			return opcache_invalidate( $filename, true );
		} elseif ( function_exists( 'apc_compile_file' ) ) {
			return apc_compile_file( $filename );
		}

		return false;
	}
}