links = $links; $this->professionalSituations = $professionnalSituations ?? []; $this->familialSituations = $familialSituations ?? []; } public function getFamilialSituationsLabels() { return $this->normalizeConfig($this->familialSituations); } /** * @return array where keys are the link's keys and label the links label */ public function getLinksLabels() { return $this->normalizeConfig($this->links); } public function getProfessionalSituationsLabels() { return $this->normalizeConfig($this->professionalSituations); } public function hasFamilialSituation(): bool { return count($this->familialSituations) > 0; } public function hasProfessionalSituation(): bool { return count($this->professionalSituations) > 0; } private function normalizeConfig($config) { $els = []; foreach ($config as $definition) { $els[$definition['key']] = $this->normalizeLabel($definition['labels']); } return $els; } private function normalizeLabel($labels) { $normalizedLabels = []; foreach ($labels as $labelDefinition) { $normalizedLabels[$labelDefinition['lang']] = $labelDefinition['label']; } return $normalizedLabels; } }