protected Condition::matchArray(array $condition, array $data, array $needs_matching, array $parents = array())
Matches for an array representing one or more config paths.
Parameters
array $condition: The condition array as created by the condition() method.
array $data: The config array or part of it.
array $needs_matching: The list of config array keys needing a match. Can contain config keys and the * wildcard.
array $parents: The current list of parents.
Return value
bool TRUE when the condition matched to the data else FALSE.
File
- core/lib/Drupal/Core/Config/Entity/Query/Condition.php, line 113
Class
- Condition
- Defines the condition class for the config entity query.
Namespace
Drupal\Core\Config\Entity\Query
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | protected function matchArray( array $condition , array $data , array $needs_matching , array $parents = array ()) { $parent = array_shift ( $needs_matching ); if ( $parent === '*' ) { $candidates = array_keys ( $data ); } else { // Avoid a notice when calling match() later. if (!isset( $data [ $parent ])) { $data [ $parent ] = NULL; } $candidates = array ( $parent ); } foreach ( $candidates as $key ) { if ( $needs_matching ) { if ( is_array ( $data [ $key ])) { $new_parents = $parents ; $new_parents [] = $key ; if ( $this ->matchArray( $condition , $data [ $key ], $needs_matching , $new_parents )) { return TRUE; } } } // Only try to match a scalar if there are no remaining keys in // $needs_matching as this indicates that we are looking for a specific // subkey and a scalar can never match that. elseif ( $this ->match( $condition , $data [ $key ])) { return TRUE; } } return FALSE; } |
Please login to continue.