HEX
Server: Apache
System: Linux c040.dattaweb.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: c0400220 (20588)
PHP: 7.4.33
Disabled: system, shell, exec, system_exec, shell_exec, mysql_pconnect, passthru, popen, proc_open, proc_close, proc_nice, proc_terminate, proc_get_status, escapeshellarg, escapeshellcmd, eval, dl, imap_mail, libvirt_connect, gnupg_init, unsetenv, apache_setenv, pcntl_exec, 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_getpriority, pcntl_setpriority, pcntl_async_signals, opcache_get_status, opcache_reset, opcache_get_configuration
Upload Files
File: /home/c0400220/public_html/wp-includes/class-wp-block-bindings-source.php
<?php
/**
 * Block Bindings API: WP_Block_Bindings_Source class.
 *
 * @package WordPress
 * @subpackage Block Bindings
 * @since 6.5.0
 */

/**
 * Class representing block bindings source.
 *
 * This class is designed for internal use by the Block Bindings registry.
 *
 * @since 6.5.0
 * @access private
 *
 * @see WP_Block_Bindings_Registry
 */
final class WP_Block_Bindings_Source {

	/**
	 * The name of the source.
	 *
	 * @since 6.5.0
	 * @var string
	 */
	public $name;

	/**
	 * The label of the source.
	 *
	 * @since 6.5.0
	 * @var string
	 */
	public $label;

	/**
	 * The function used to get the value from the source.
	 *
	 * @since 6.5.0
	 * @var callable
	 */
	private $get_value_callback;

	/**
	 * The context added to the blocks needed by the source.
	 *
	 * @since 6.5.0
	 * @var string[]|null
	 */
	public $uses_context = null;

	/**
	 * Constructor.
	 *
	 * Do not use this constructor directly. Instead, use the
	 * `WP_Block_Bindings_Registry::register` method or the `register_block_bindings_source` function.
	 *
	 * @since 6.5.0
	 *
	 * @param string $name              The name of the source.
	 * @param array  $source_properties The properties of the source.
	 */
	public function __construct( string $name, array $source_properties ) {
		$this->name = $name;
		foreach ( $source_properties as $property_name => $property_value ) {
			$this->$property_name = $property_value;
		}
	}

	/**
	 * Calls the callback function specified in the `$get_value_callback` property
	 * with the given arguments and returns the result. It can be modified with
	 * `block_bindings_source_value` filter.
	 *
	 * @since 6.5.0
	 * @since 6.7.0 `block_bindings_source_value` filter was added.
	 *
	 * @param array    $source_args    Array containing source arguments used to look up the override value, i.e. {"key": "foo"}.
	 * @param WP_Block $block_instance The block instance.
	 * @param string   $attribute_name The name of the target attribute.
	 * @return mixed The value of the source.
	 */
	public function get_value( array $source_args, $block_instance, string $attribute_name ) {
		$value = call_user_func_array( $this->get_value_callback, array( $source_args, $block_instance, $attribute_name ) );
		/**
		 * Filters the output of a block bindings source.
		 *
		 * @since 6.7.0
		 *
		 * @param mixed    $value          The computed value for the source.
		 * @param string   $name           The name of the source.
		 * @param array    $source_args    Array containing source arguments used to look up the override value, i.e. { "key": "foo" }.
		 * @param WP_Block $block_instance The block instance.
		 * @param string   $attribute_name The name of an attribute.
		 */
		return apply_filters( 'block_bindings_source_value', $value, $this->name, $source_args, $block_instance, $attribute_name );
	}

	/**
	 * Wakeup magic method.
	 *
	 * @since 6.5.0
	 */
	public function __wakeup() {
		throw new \LogicException( __CLASS__ . ' should never be unserialized' );
	}
}