2 namespace TYPO3\CMS\Install\Configuration;
39 \TYPO3\CMS\Install\Configuration\Charset\CharsetFeature::class,
40 \TYPO3\CMS\Install\Configuration\Context\ContextFeature::class,
41 \TYPO3\CMS\Install\Configuration\Image\ImageFeature::class,
42 \TYPO3\CMS\Install\Configuration\ExtbaseObjectCache\ExtbaseObjectCacheFeature::class,
43 \TYPO3\CMS\Install\Configuration\Mail\MailFeature::class,
53 public function getInitializedFeatures(array $postValues)
56 foreach ($this->featureRegistry as $featureClass) {
58 $featureInstance = $this->objectManager->get($featureClass);
61 'Feature ' . $featureClass .
' does not implement FeatureInterface',
65 $featureInstance->initializePresets($postValues);
66 $features[] = $featureInstance;
78 public function getConfigurationForSelectedFeaturePresets(array $postValues)
80 $localConfigurationValuesToSet = array();
81 $features = $this->getInitializedFeatures($postValues);
82 foreach ($features as $feature) {
84 $featureName = $feature->getName();
85 $presets = $feature->getPresetsOrderedByPriority();
86 foreach ($presets as $preset) {
88 $presetName = $preset->getName();
89 if (!empty($postValues[$featureName][
'enable'])
90 && $postValues[$featureName][
'enable'] === $presetName
91 && (!$preset->isActive() || $preset instanceof CustomPresetInterface)
93 $localConfigurationValuesToSet = array_merge(
94 $localConfigurationValuesToSet,
95 $preset->getConfigurationValues()
100 return $localConfigurationValuesToSet;
109 public function getBestMatchingConfigurationForAllFeatures()
111 $localConfigurationValuesToSet = array();
112 $features = $this->getInitializedFeatures(array());
113 foreach ($features as $feature) {
115 $presets = $feature->getPresetsOrderedByPriority();
116 foreach ($presets as $preset) {
118 if ($preset instanceof CustomPresetInterface) {
123 if ($preset->isAvailable()) {
124 $localConfigurationValuesToSet = array_merge(
125 $localConfigurationValuesToSet,
126 $preset->getConfigurationValues()
133 return $localConfigurationValuesToSet;