403Webshell
Server IP : 198.38.94.13  /  Your IP : 216.73.217.33
Web Server : Apache
System : Linux d4744.dxb1.stableserver.net 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64
User : revivere ( 1140)
PHP Version : 8.2.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/revivere/www/wp-content/plugins/broken-link-checker/legacy/includes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/revivere/www/wp-content/plugins/broken-link-checker/legacy/includes/config-store.php7.php
<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
/**
 * Configuration Store Class for PHP 7.4
 *
 * @package Broken Link Checker
 */

/**
 * Configuration Store Class
 *
 * @package Broken Link Checker
 */

if ( class_exists( 'blcConfigStore' ) ) {
	return;
}
/**
 * Class blcConfigStore
 *
 * Implements ArrayAccess to provide array-like access to configuration data.
 */
class blcConfigStore implements ArrayAccess {

	/**
	 * Configuration managers map.
	 *
	 * @var array<string, blcConfigurationManager>
	 */
	private $managers = array();

	/**
	 * Cached settings map.
	 *
	 * @var array<string, string>
	 */
	private $cached_settings = array();

	/**
	 * Default manager key.
	 *
	 * @var blcConfigurationManager|null
	 */
	private $default_manager = null;

	/**
	 * Check if a configuration offset exists.
	 *
	 * @param mixed $offset The offset to check.
	 * @return bool True if offset exists, false otherwise.
	 */
	public function offsetExists( $offset ): bool {
		$manager = $this->resolve_manager( $offset );
		if ( $manager ) {
			return $manager->has_option( $offset );
		}

		return false;
	}

	/**
	 * Get a configuration value by offset.
	 *
	 * @param mixed $offset The offset to retrieve.
	 * @return mixed The configuration value or null if not set.
	 */
	#[\ReturnTypeWillChange]
	public function offsetGet( $offset ) {
		$manager = $this->resolve_manager( $offset );
		if ( $manager ) {
			return $manager->get( $offset );
		}
		return null;
	}

	/**
	 * Set a configuration value by offset.
	 *
	 * @param mixed $offset The offset to set.
	 * @param mixed $value  The value to set.
	 * @return void
	 */
	public function offsetSet( $offset, $value ): void {
		if ( is_null( $offset ) ) {
			return;
		}

		$manager = $this->resolve_manager( $offset );
		if ( $manager ) {
			$manager->set( $offset, $value );
		}
	}

	/**
	 * Unset a configuration value by offset.
	 *
	 * @param mixed $offset The offset to unset.
	 * @return void
	 */
	public function offsetUnset( $offset ): void {
		$manager = $this->resolve_manager( $offset );
		if ( $manager && $manager->has_option( $offset ) ) {
			$manager->delete_option( $offset );
		}
	}

	/**
	 * Add a configuration manager.
	 *
	 * @param string                  $key     The key for the manager.
	 * @param blcConfigurationManager $manager The manager to add.
	 * @return void
	 */
	public function add_manager( string $key, blcConfigurationManager $manager ): void {
		$this->managers[ $key ] = $manager;
		$this->cache_available_settings( $key, $manager->get_available_settings() );
	}

	/**
	 * Check if a configuration manager exists.
	 *
	 * @param string $key The key of the manager.
	 * @return bool True if manager exists, false otherwise.
	 */
	public function has_manager( string $key ): bool {
		return isset( $this->managers[ $key ] );
	}

	/**
	 * Get the default configuration manager.
	 *
	 * @return blcConfigurationManager|null The default manager or null if not set.
	 */
	public function get_default_manager(): ?blcConfigurationManager {
		return $this->default_manager;
	}

	/**
	 * Cache available settings from a manager.
	 *
	 * @param string $manager_key     The manager key.
	 * @param array  $manager_options The manager options to cache.
	 * @return void
	 */
	public function cache_available_settings( string $manager_key, array $manager_options ): void {
		foreach ( $manager_options as $option ) {
			$this->cached_settings[ $option ] = $manager_key;
		}
	}

	/**
	 * Remove a configuration manager by key.
	 *
	 * @param string $key The key of the manager to remove.
	 * @return bool True if manager was removed, false if not found.
	 */
	public function remove_manager( string $key ): bool {
		if ( isset( $this->managers[ $key ] ) ) {
			unset( $this->managers[ $key ] );
			$this->remove_cached_settings( $key );
			return true;
		}
		return false;
	}

	/**
	 * Remove cached settings for a manager.
	 *
	 * @param string $manager_key The manager key whose settings to remove.
	 * @return void
	 */
	public function remove_cached_settings( string $manager_key ): void {
		foreach ( $this->cached_settings as $setting => $key ) {
			if ( $key === $manager_key ) {
				unset( $this->cached_settings[ $setting ] );
			}
		}
	}

	/**
	 * Get all configuration managers.
	 *
	 * @return array<string, blcConfigurationManager> Map of configuration managers.
	 */
	public function get_managers(): array {
		return $this->managers;
	}

	/**
	 * Get a specific configuration manager by key.
	 *
	 * @param string $key The manager key.
	 * @return blcConfigurationManager|null The manager or null if not found.
	 */
	public function get_manager( string $key ): ?blcConfigurationManager {
		return $this->managers[ $key ] ?? null;
	}

	/**
	 * Set the default configuration manager.
	 *
	 * @param string $key The key of the manager to use as default.
	 * @return void
	 */
	public function set_default_manager( string $key ): void {
		if ( isset( $this->managers[ $key ] ) ) {
			$this->default_manager = $this->managers[ $key ];
		}
	}

	/**
	 * Get the manager responsible for a specific setting.
	 *
	 * @param string $setting The setting key.
	 * @return blcConfigurationManager|null The manager or null if not found.
	 */
	public function resolve_manager( string $setting ): ?blcConfigurationManager {
		if ( isset( $this->cached_settings[ $setting ] ) ) {
			$manager_key = $this->cached_settings[ $setting ];
			return $this->get_manager( $manager_key );
		}

		// Fall back to default manager if set.
		if ( $this->default_manager ) {
			return $this->default_manager;
		}

		return null;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit