Automattic\WooCommerce\Blocks
DependencyDetection::get_all_dependencies
Recursively get all dependencies including nested ones.
Method of the class: DependencyDetection{}
No Hooks.
Returns
Array
Usage
// private - for code of main (parent) class only $result = $this->get_all_dependencies( $deps ): array;
- $deps(array
) (required) - Direct dependencies.
DependencyDetection::get_all_dependencies() DependencyDetection::get all dependencies code WC 10.7.0
private function get_all_dependencies( array $deps ): array {
$wp_scripts = wp_scripts();
$all_deps = array();
$deps_to_process = $deps;
while ( ! empty( $deps_to_process ) ) {
$handle = array_shift( $deps_to_process );
if ( in_array( $handle, $all_deps, true ) ) {
continue;
}
$all_deps[] = $handle;
// Add nested dependencies to process.
if ( isset( $wp_scripts->registered[ $handle ] ) ) {
foreach ( $wp_scripts->registered[ $handle ]->deps as $nested_dep ) {
if ( ! in_array( $nested_dep, $all_deps, true ) ) {
$deps_to_process[] = $nested_dep;
}
}
}
}
// Filter to only include WooCommerce handles we care about.
$wc_handles = array_values( self::WC_GLOBAL_EXPORTS );
return array_values(
array_filter(
$all_deps,
function ( $dep ) use ( $wc_handles ) {
return in_array( $dep, $wc_handles, true );
}
)
);
}