Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ public function saveUserSettings(array $data) {
}
foreach ($data as $widgetID => $userSettings) {
$dataKeys = ['active', 'order', 'position', 'cssClass'];
$userSettings = ArrayHelper::filterByKeys($dataKeys, $userSettings);
$userSettings = ArrayHelper::excludeKeys($userSettings, $dataKeys);
if (isset($userSettings['order']) && $userSettings['order'] === '') {
$userSettings['order'] = 0;
}
Expand All @@ -193,7 +193,7 @@ public function saveUserSettings(array $data) {
/** @var DashboardWidget|null $dashboardWidget */
$dashboardWidget = $this->repository()->findOneBy(['id' => $widgetID, 'active' => true]);
$tmp = $dashboardWidget->toArray();
$tmp = ArrayHelper::filterByKeys($dataKeys, $tmp);
$tmp = ArrayHelper::excludeKeys($tmp, $dataKeys);
$userDashboardWidget = UserDashboardWidget::create($baseWidgetData);
$userDashboardWidget->fromArray($tmp);
$userDashboardWidget->fromArray($userSettings);
Expand Down
67 changes: 43 additions & 24 deletions Engine/Modules/Core/Helper/ArrayHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,14 @@
*
* @package Oforge\Engine\Modules\Core\Helper
*/
class ArrayHelper {
class ArrayHelper
{

/**
* Prevent instance.
*/
private function __construct() {
private function __construct()
{
}

/**
Expand All @@ -22,7 +24,8 @@ private function __construct() {
*
* @return bool
*/
public static function isAssoc(array $array) : bool {
public static function isAssoc(array $array) : bool
{
return ($array !== array_values($array));
}

Expand All @@ -34,7 +37,8 @@ public static function isAssoc(array $array) : bool {
*
* @return bool
*/
public static function issetNotEmpty(array $array, $key) : bool {
public static function issetNotEmpty(array $array, $key) : bool
{
return isset($array[$key]) && $array[$key] !== '';
}

Expand All @@ -48,7 +52,8 @@ public static function issetNotEmpty(array $array, $key) : bool {
*
* @return mixed
*/
public static function get(array $array, $key, $defaultValue = null) {
public static function get(array $array, $key, $defaultValue = null)
{
return isset($array[$key]) ? $array[$key] : $defaultValue;
}

Expand All @@ -61,7 +66,8 @@ public static function get(array $array, $key, $defaultValue = null) {
*
* @return mixed
*/
public static function pop(array &$array, $key, $defaultValue = null) {
public static function pop(array &$array, $key, $defaultValue = null)
{
if (isset($array[$key])) {
$value = $array[$key];
unset($array[$key]);
Expand All @@ -82,7 +88,8 @@ public static function pop(array &$array, $key, $defaultValue = null) {
*
* @return mixed
*/
public static function getNullable(array $array, $key, $defaultValue = null) {
public static function getNullable(array $array, $key, $defaultValue = null)
{
return array_key_exists($key, $array) ? $array[$key] : $defaultValue;
}

Expand All @@ -95,20 +102,23 @@ public static function getNullable(array $array, $key, $defaultValue = null) {
*
* @return array
*/
public static function extractData(array $keys, array $inputArray, $defaultValue = '') : array {
public static function extractData(array $keys, array $inputArray, $defaultValue = '') : array
{
$tmp = array_fill_keys($keys, $defaultValue);

return array_replace($tmp, array_intersect_key($inputArray, $tmp));
}

/**
* Extract all data by key with original value.
*
* @param array $inputArray
* @param array $keys
*
* @return array
*/
public static function extractByKey(array $inputArray, array $keys) {
public static function extractByKey(array $inputArray, array $keys) : array
{
return array_intersect_key($inputArray, array_flip($keys));
}

Expand All @@ -119,7 +129,8 @@ public static function extractByKey(array $inputArray, array $keys) {
*
* @return array
*/
public static function mergeRecursive(array $array1, array $array2, bool $overrideNumericIndices = false) {
public static function mergeRecursive(array $array1, array $array2, bool $overrideNumericIndices = false) : array
{
foreach ($array2 as $key => &$value) {
if (is_array($value) && isset($array1[$key]) && is_array($array1[$key])) {
if (is_string($key)) {
Expand All @@ -128,7 +139,7 @@ public static function mergeRecursive(array $array1, array $array2, bool $overri
$array1[] = $value;
}
} elseif (is_numeric($key)) {
if (!isset($array1[$key]) || $overrideNumericIndices) {
if ( !isset($array1[$key]) || $overrideNumericIndices) {
$array1[$key] = $value;
} else {
$array1[] = $value;
Expand All @@ -151,15 +162,16 @@ public static function mergeRecursive(array $array1, array $array2, bool $overri
*
* @return mixed
*/
public static function dotGet(array $array, string $key, $default = null) {
public static function dotGet(array $array, string $key, $default = null)
{
if (empty($key) || empty($array)) {
return $default;
}
if (strpos($key, '.') !== false) {
$keys = explode('.', $key);
$tmp = $array;
foreach ($keys as $key) {
if (!isset($tmp[$key])) {
if ( !isset($tmp[$key])) {
return $default;
}

Expand All @@ -181,16 +193,17 @@ public static function dotGet(array $array, string $key, $default = null) {
*
* @return array
*/
public static function dotSet(array $array, $keyOrKeyPath, $value) {
public static function dotSet(array $array, $keyOrKeyPath, $value) : array
{
if (is_string($keyOrKeyPath) && strpos($keyOrKeyPath, '.') !== false) {
$keyOrKeyPath = explode('.', $keyOrKeyPath);
}
if (is_array($keyOrKeyPath)) {
$tmp = &$array;
$tmp = &$array;
foreach ($keyOrKeyPath as $key) {
if (!isset($tmp[$key])) {
if ( !isset($tmp[$key])) {
$tmp[$key] = [];
} elseif (!is_array($tmp[$key])) {
} elseif ( !is_array($tmp[$key])) {
$tmp[$key] = [$tmp[$key]];
}
$tmp = &$tmp[$key];
Expand All @@ -210,7 +223,8 @@ public static function dotSet(array $array, $keyOrKeyPath, $value) {
*
* @return array
*/
public static function dotToNested(array $array) : array {
public static function dotToNested(array $array) : array
{
$result = [];
foreach ($array as $key => $value) {
if (is_array($value)) {
Expand All @@ -226,17 +240,22 @@ public static function dotToNested(array $array) : array {
/**
* Removes all unwanted array keys.
*
* @param array $keys
* @param array $inputArray
* @param array $excludingKeys
*
* @return array
*/
public static function filterByKeys(array $keys, array $inputArray) {
$tmp = array_fill_keys($keys, 1);
public static function excludeKeys(array $inputArray, array $excludingKeys) : array
{
$tmp = array_fill_keys($excludingKeys, 1);

return array_filter($inputArray, function ($key) use ($tmp) {
return isset($tmp[$key]);
}, ARRAY_FILTER_USE_KEY);
return array_filter(
$inputArray,
function ($key) use ($tmp) {
return !isset($tmp[$key]);
},
ARRAY_FILTER_USE_KEY
);
}

}