/** * @param Manager $manager * @return array<array<WritableProviderInterface|Form>> */ protected function getForms(Manager $manager) { $forms = []; foreach ($manager->getFeatureSet()->getAll() as $name => $_) { $forms[$name] = []; foreach ($manager->getProviders() as $provider) { /** * @var ProviderInterface $provider */ if (!$provider instanceof WritableProviderInterface) { continue; } $providerName = $provider->getName(); $feature = $manager->getFeatureSet()->getFeatureFromProvider($name, $provider, new Feature($name, null, $provider)); $form = $this->createForm(new FeatureType($providerName, $name, $manager), $feature); $forms[$name][$providerName] = ['provider' => $provider, 'form' => $form]; } } return $forms; }