WP_Dependencies::recurse_deps()protectedWP 4.0.0

Recursively search the passed dependency tree for a handle.

Method of the class: WP_Dependencies{}

No Hooks.

Return

true|false. Whether the handle is found after recursively searching the dependency tree.

Usage

// protected - for code of main (parent) or child class
$result = $this->recurse_deps( $queue, $handle );
$queue(string[]) (required)
An array of queued _WP_Dependency handles.
$handle(string) (required)
Name of the item. Should be unique.

Changelog

Since 4.0.0 Introduced.

WP_Dependencies::recurse_deps() code WP 6.5.2

protected function recurse_deps( $queue, $handle ) {
	if ( isset( $this->all_queued_deps ) ) {
		return isset( $this->all_queued_deps[ $handle ] );
	}

	$all_deps = array_fill_keys( $queue, true );
	$queues   = array();
	$done     = array();

	while ( $queue ) {
		foreach ( $queue as $queued ) {
			if ( ! isset( $done[ $queued ] ) && isset( $this->registered[ $queued ] ) ) {
				$deps = $this->registered[ $queued ]->deps;
				if ( $deps ) {
					$all_deps += array_fill_keys( $deps, true );
					array_push( $queues, $deps );
				}
				$done[ $queued ] = true;
			}
		}
		$queue = array_pop( $queues );
	}

	$this->all_queued_deps = $all_deps;

	return isset( $this->all_queued_deps[ $handle ] );
}