public function __invoke() : array { return ['config' => ['community' => ['features' => array_map(function ($className) { $feature = $this->featuresFactory->createFeatureFromClassName($className); return ['code' => $feature->getCode(), 'name' => $feature->getTranslatedName(), 'description' => $feature->getTranslatedDescription(), 'fa_icon' => $feature->getFACode(), 'is_development_ready' => $feature->isDevelopmentReady(), 'is_production_ready' => $feature->isProductionReady()]; }, $this->featuresFactory->listFeatures())]]]; }
public function deactivateFeature(string $featureStringCode, Community $community) { $feature = $this->featureFactory->createFeatureFromStringCode($featureStringCode); if (!$feature->isActivated($community)) { throw new FeatureIsNotActivatedException(sprintf('Feature `%s` is not activated for community `%d`', $featureStringCode, $community->getId())); } $feature->deactivate($community); $this->communityRepository->deactivateFeature($community, $featureStringCode); }