public function collect(Request $request, Response $response, \Exception $exception = null) { $this->data['context'] = $this->manager->getContext(); $this->data['features'] = []; $this->data['feature_providers'] = []; foreach ($this->manager->getFeatureSet()->getAllCanonical() as $name => $feature) { $this->data['features'][$name] = $feature->getStatus(); $this->data['feature_providers'][$name] = $feature->getProvider()->getName(); } }
/** * @param FormFeature $value * @return \Pheat\Feature\FeatureInterface */ public function reverseTransform($value) { if (!$value instanceof FormFeature) { throw new TransformationFailedException('Invalid form feature'); } $provider = $this->manager->getProvider($value->provider); if (!$provider) { throw new TransformationFailedException('Invalid provider name'); } $factory = new Factory(); $feature = $factory->singleFragment($value->name, ['enabled' => $value->status, 'ratio' => $value->ratio, 'variants' => $value->variants], $provider); if (!$feature) { throw new TransformationFailedException('Invalid configuration fragment'); } return $feature; }
/** * @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; }
/** * @depends testProviderOrdering * @expectedException \Pheat\Exception\LockedException */ public function testLocking(Manager $manager) { $manager->addProvider($this->getMockProvider()); }