예제 #1
0
 function it_defines_resource_options(OptionsResolver $resolver, MetadataInterface $metadata)
 {
     $metadata->getDriver()->willReturn(SyliusResourceBundle::DRIVER_DOCTRINE_ORM);
     $resolver->setDefaults(['class' => null])->shouldBeCalled()->willReturn($resolver);
     $resolver->setNormalizer('class', Argument::type('callable'))->shouldBeCalled()->willReturn($resolver);
     $this->configureOptions($resolver);
 }
예제 #2
0
 /**
  * @param MetadataInterface $metadata
  *
  * @return DriverInterface
  *
  * @throws UnknownDriverException
  */
 public static function get(MetadataInterface $metadata)
 {
     $type = $metadata->getDriver();
     if (isset(self::$drivers[$type])) {
         return self::$drivers[$type];
     }
     switch ($type) {
         case SyliusResourceBundle::DRIVER_DOCTRINE_ORM:
             return self::$drivers[$type] = new DoctrineORMDriver();
         case SyliusResourceBundle::DRIVER_DOCTRINE_MONGODB_ODM:
             return self::$drivers[$type] = new DoctrineODMDriver();
         case SyliusResourceBundle::DRIVER_DOCTRINE_PHPCR_ODM:
             return self::$drivers[$type] = new DoctrinePHPCRDriver();
     }
     throw new UnknownDriverException($type);
 }
예제 #3
0
 /**
  * {@inheritdoc}
  */
 public function getParent()
 {
     return $this->getFormTypeForDriver($this->metadata->getDriver());
 }
예제 #4
0
 /**
  * @param MetadataInterface $metadata
  * @param OutputInterface $output
  */
 private function debugResource(MetadataInterface $metadata, OutputInterface $output)
 {
     $table = new Table($output);
     $information = ['name' => $metadata->getName(), 'application' => $metadata->getApplicationName(), 'driver' => $metadata->getDriver()];
     $parameters = $this->flattenParameters($metadata->getParameters());
     foreach ($parameters as $key => $value) {
         $information[$key] = $value;
     }
     foreach ($information as $key => $value) {
         $table->addRow([$key, $value]);
     }
     $table->render();
 }
예제 #5
0
 /**
  * @param ContainerBuilder $container
  * @param MetadataInterface $metadata
  */
 protected function addForms(ContainerBuilder $container, MetadataInterface $metadata)
 {
     foreach ($metadata->getClass('form') as $formName => $formClass) {
         $suffix = 'default' === $formName ? '' : sprintf('_%s', $formName);
         $alias = sprintf('%s_%s%s', $metadata->getApplicationName(), $metadata->getName(), $suffix);
         $definition = new Definition($formClass);
         switch ($formName) {
             case 'choice':
                 $definition->setArguments([$metadata->getClass('model'), $metadata->getDriver(), $alias]);
                 break;
             default:
                 $validationGroupsParameterName = sprintf('%s.validation_groups.%s%s', $metadata->getApplicationName(), $metadata->getName(), $suffix);
                 $validationGroups = new Parameter($validationGroupsParameterName);
                 if (!$container->hasParameter($validationGroupsParameterName)) {
                     $validationGroups = ['Default'];
                 }
                 $definition->setArguments([$metadata->getClass('model'), $validationGroups]);
                 break;
         }
         $definition->addTag('form.type', ['alias' => $alias]);
         $container->setParameter(sprintf('%s.form.type.%s%s.class', $metadata->getApplicationName(), $metadata->getName(), $suffix), $formClass);
         $container->setDefinition(sprintf('%s.form.type.%s%s', $metadata->getApplicationName(), $metadata->getName(), $suffix), $definition);
     }
     if (!$container->hasDefinition(sprintf('%s.form.type.%s', $metadata->getApplicationName(), $metadata->getName()))) {
         $this->addDefaultForm($container, $metadata);
     }
 }