enabledCategories = $enabledCategories; $this->getEssentialCategoryKeys = $getEssentialCategoryKeys; } /** * @param array $acceptedKeys * @return bool[] */ public function execute(array $acceptedKeys): array { if (empty($acceptedKeys)) { return []; } if (in_array(CategoryInterface::ALL_CATEGORIES, $acceptedKeys, true)) { $settings = [CategoryInterface::ALL_CATEGORIES => true]; } else { $enabledCategoriesKeys = array_keys($this->enabledCategories->toOptionHash()); $essentialCategoryKeys = $this->getEssentialCategoryKeys->execute(); $settings = []; foreach ($enabledCategoriesKeys as $enabledCategoriesKey) { if (in_array($enabledCategoriesKey, $essentialCategoryKeys, true)) { $settings[$enabledCategoriesKey] = true; } else { $settings[$enabledCategoriesKey] = in_array($enabledCategoriesKey, $acceptedKeys, true); } } } return $settings; } }