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;
 }
Пример #4
0
 /**
  * @depends testProviderOrdering
  * @expectedException \Pheat\Exception\LockedException
  */
 public function testLocking(Manager $manager)
 {
     $manager->addProvider($this->getMockProvider());
 }