How to prevent DRY in PHP. Refactoring task
class ManageableMapper extends BaseMapper
{
public function map(array $data): array
{
return array_map(function ($row) {
Arr::set(
$row,
'readonly',
in_array($row['readonly'], config('User::user-management.roles.readonly'))
);
return $row;
}, $data);
}
}and
class ManageableUserMapper extends BaseMapper
{
/**
* @param array $data
*
* @return array
*/
public function map(array $data): array
{
return array_map(function ($row) {
Arr::set(
$row,
'readonly',
in_array($row['readonly'], config('User::user-management.roles.readonly')) || $row['super']
);
return $row;
}, $data);
}
}Notice in this 2 classes the difference lies only in || $row['super']