notificationFlagProviders as $flagProvider) { $flag = $flagProvider->getFlag(); if (isset($formsArray[$flag])) { $flagForm = $formsArray[$flag]; $immediateEmailChecked = in_array(User::NOTIF_FLAG_IMMEDIATE_EMAIL, $viewData[$flag] ?? [], true) || !array_key_exists($flag, $viewData); $dailyEmailChecked = in_array(User::NOTIF_FLAG_DAILY_DIGEST, $viewData[$flag] ?? [], true); if ($flagForm->has('immediate_email')) { $flagForm->get('immediate_email')->setData($immediateEmailChecked); } if ($flagForm->has('daily_email')) { $flagForm->get('daily_email')->setData($dailyEmailChecked); } } } } public function mapFormsToData($forms, &$viewData): void { $formsArray = iterator_to_array($forms); $viewData = []; foreach ($this->notificationFlagProviders as $flagProvider) { $flag = $flagProvider->getFlag(); if (isset($formsArray[$flag])) { $flagForm = $formsArray[$flag]; $viewData[$flag] = []; if (true === $flagForm['immediate_email']->getData()) { $viewData[$flag][] = User::NOTIF_FLAG_IMMEDIATE_EMAIL; } if (true === $flagForm['daily_email']->getData()) { $viewData[$flag][] = User::NOTIF_FLAG_DAILY_DIGEST; } if ([] === $viewData[$flag]) { $viewData[$flag][] = User::NOTIF_FLAG_IMMEDIATE_EMAIL; } } } } }