blazy-8.x-2.x-dev/src/Utility/Arrays.php
src/Utility/Arrays.php
<?php namespace Drupal\blazy\Utility; use Drupal\Component\Utility\NestedArray; /** * Provides blazy utilities. * * @internal * This is an internal part of the Blazy system and should only be used by * blazy-related code in Blazy module. */ class Arrays { /** * Filters out empty string value to avoid JSON.parse error. */ public static function filter(array $config): array { return array_filter($config, '\Drupal\blazy\Utility\Arrays::filterEmpty'); } /** * Filters out empty string value to avoid JSON.parse error. */ public static function filterEmpty($config): bool { return ($config !== NULL && $config !== '' && $config !== []); } /** * Merge data with a new one with an optional key and reversed parameters. */ public static function merge(array $data, array $element, $key = NULL): array { if ($key) { return empty($element[$key]) ? $data : NestedArray::mergeDeep($element[$key], $data); } return empty($element) ? $data : NestedArray::mergeDeep($element, $data); } /** * Merge multiple BlazySettings objects. */ public static function mergeSettings($keys, array $defaults, array $configs): array { $keys = is_string($keys) ? [$keys] : $keys; foreach ($keys as $key) { $object = $defaults[$key] ?? NULL; $oldies = $object ? $object->storage() : []; if (!isset($configs[$key]) && $object) { $configs[$key] = $object; } if ($newbies = $configs[$key] ?? NULL) { $data = $newbies->storage(); $data = $oldies ? NestedArray::mergeDeepArray([$oldies, $data], TRUE) : $data; $configs[$key]->setData($data); } } return $configs; } }