Server : Apache System : Linux pod-100823:apache2_74:v0.5.7 5.4.0-1138-gcp #147~18.04.1-Ubuntu SMP Mon Oct 7 21:46:26 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33.7 Disable Function : apache_child_terminate,apache_get_modules,apache_get_version,apache_getenv,apache_note,apache_setenv,disk_free_space,disk_total_space,diskfreespace,dl,exec,fastcgi_finish_request,link,opcache_compile_file,opcache_get_configuration,opcache_invalidate,opcache_is_script_cached,opcache_reset,passthru,pclose,pcntl_exec,popen,posix_getpid,posix_getppid,posix_getpwuid,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_uname,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,realpath_cache_get,shell_exec,show_source,symlink,system Directory : /nas/content/live/attorneyexperi/wp-content/plugins/wp-rocket/inc/Addon/Varnish/ |
<?php namespace WP_Rocket\Addon\Varnish; use WP_Rocket\Admin\Options_Data; use WP_Rocket\Event_Management\Subscriber_Interface; /** * Subscriber for the Varnish Purge. * * @since 3.5 */ class Subscriber implements Subscriber_Interface { /** * Varnish instance * * @var Varnish */ private $varnish; /** * WP Rocket options instance * * @var Options_Data */ private $options; /** * Constructor * * @param Varnish $varnish Varnish instance. * @param Options_Data $options WP Rocket options instance. */ public function __construct( Varnish $varnish, Options_Data $options ) { $this->varnish = $varnish; $this->options = $options; } /** * {@inheritdoc} */ public static function get_subscribed_events() { return [ 'before_rocket_clean_domain' => [ 'clean_domain', 10, 3 ], 'before_rocket_clean_file' => [ 'clean_file' ], 'rocket_rucss_after_clearing_usedcss' => [ 'clean_file' ], 'before_rocket_clean_home' => [ 'clean_home', 10, 2 ], 'rocket_rucss_complete_job_status' => [ 'clean_file' ], ]; } /** * Checks if Varnish cache should be purged * * @since 3.5 * * @return bool */ private function should_purge() { return ( /** * Filters the use of the Varnish compatibility add-on * * @param bool $varnish_purge True to use, false otherwise. */ apply_filters( 'do_rocket_varnish_http_purge', false ) // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals || (bool) $this->options->get( 'varnish_auto_purge', 0 ) ); } /** * Clears Varnish cache for the whole domain * * @param string $root The path of home cache file. * @param string $lang The current lang to purge. * @param string $url The home url. * @return void */ public function clean_domain( $root, $lang, $url ) { if ( ! $this->should_purge() ) { return; } $this->varnish->purge( trailingslashit( $url ) . '?regex' ); } /** * Clears a specific page in Varnish cache * * @param string $url The url to purge. * @return void */ public function clean_file( $url ) { if ( ! $this->should_purge() ) { return; } $this->varnish->purge( trailingslashit( $url ) . '?regex' ); } /** * Clears the homepage in Varnish cache * * @param string $root The path of home cache file. * @param string $lang The current lang to purge. * @return void */ public function clean_home( $root, $lang ) { if ( ! $this->should_purge() ) { return; } $home_url = trailingslashit( get_rocket_i18n_home_url( $lang ) ); $home_pagination_url = $home_url . trailingslashit( $GLOBALS['wp_rewrite']->pagination_base ) . '?regex'; $this->varnish->purge( $home_url ); $this->varnish->purge( $home_pagination_url ); } }