setArguments() public method

Sets the arguments to pass to the service constructor/factory method.
public setArguments ( array $arguments ) : Definition
$arguments array An array of arguments
return Definition The current instance
Example #1
0
 /**
  * {@inheritdoc}
  */
 public function createDefinition(ContainerBuilder $container, array $config)
 {
     $definition = new Definition('Jose\\Object\\JWK');
     $definition->setFactory([new Reference('jose.factory.jwk'), 'createFromKeySet']);
     $definition->setArguments([new Reference($config['key_set']), $config['index']]);
     return $definition;
 }
Example #2
0
 /**
  * {@inheritdoc}
  */
 public function createDefinition(ContainerBuilder $container, array $config)
 {
     $definition = new Definition('Jose\\Object\\JWK');
     $definition->setFactory([new Reference('jose.factory.jwk'), 'createFromKeyFile']);
     $definition->setArguments([$config['path'], $config['password'], $config['additional_values']]);
     return $definition;
 }
Example #3
0
 /**
  * {@inheritdoc}
  */
 public function createDefinition(ContainerBuilder $container, array $config)
 {
     $definition = new Definition('Jose\\Object\\JWKSet');
     $definition->setFactory([new Reference('jose.factory.jwk'), 'createFromValues']);
     $definition->setArguments([json_decode($config['value'], true)]);
     return $definition;
 }
 /**
  * @param string $class
  * @param Definition $definition
  * @param string[] $classes
  * @param string $id
  * @param ContainerBuilder $container
  */
 private function autowireConstructor($class, Definition $definition, array $classes, $id, ContainerBuilder $container)
 {
     $reflection = new ReflectionClass($class);
     $constructor = $reflection->getConstructor();
     // service not created by factory with public constructor with not fully configured arguments
     if ($constructor !== NULL && $constructor->isPublic() && $definition->getFactoryMethod() === NULL) {
         $autowiredArgs = $this->autowireMethod($constructor, $definition->getArguments(), $classes, $id, $container);
         if ($definition instanceof DefinitionDecorator && $definition->getParent() !== NULL) {
             $parentDef = $container->getDefinition($definition->getParent());
             $parentDefArgsCount = count($parentDef->getArguments());
             $argsToReplace = array();
             foreach ($autowiredArgs as $i => $arg) {
                 if ($i < $parentDefArgsCount) {
                     $argsToReplace[$i] = $arg;
                     unset($autowiredArgs[$i]);
                 }
             }
             $definition->setArguments($autowiredArgs);
             foreach ($argsToReplace as $i => $arg) {
                 $definition->replaceArgument($i, $arg);
             }
         } else {
             $definition->setArguments($autowiredArgs);
         }
     }
 }
 function it_processes_the_configuration_and_registers_services_per_subject(ContainerBuilder $container)
 {
     $container->hasParameter('sylius.translation.mapping')->willReturn(false);
     $container->hasParameter('sylius.translation.default.mapping')->willReturn(true);
     $container->getParameter('sylius.translation.default.mapping')->willReturn(array(array('default_mapping' => array('translatable' => array('field' => 'translations', 'currentLocale' => 'currentLocale', 'fallbackLocale' => 'fallbackLocale'), 'translation' => array('field' => 'translatable', 'locale' => 'locale')))));
     $attributeFormType = new Definition('Some\\App\\Product\\Form\\AttributeType');
     $attributeFormType->setArguments(array('Some\\App\\Product\\Entity\\Attribute', '%sylius.validation_group.product_attribute%', 'product'));
     $attributeFormType->addTag('form.type', array('alias' => 'sylius_product_attribute'));
     $container->setDefinition('sylius.form.type.product_attribute', $attributeFormType)->shouldBeCalled();
     $attributeTranslationFormType = new Definition('Some\\App\\Product\\Form\\AttributeTranslationType');
     $attributeTranslationFormType->setArguments(array('Some\\App\\Product\\Entity\\AttributeTranslation', '%sylius.validation_group.product_attribute_translation%', 'product'));
     $attributeTranslationFormType->addTag('form.type', array('alias' => 'sylius_product_attribute_translation'));
     $container->setDefinition('sylius.form.type.product_attribute_translation', $attributeTranslationFormType)->shouldBeCalled();
     $choiceTypeClasses = array(SyliusResourceBundle::DRIVER_DOCTRINE_ORM => 'Sylius\\Bundle\\AttributeBundle\\Form\\Type\\AttributeEntityChoiceType');
     $attributeChoiceFormType = new Definition($choiceTypeClasses[SyliusResourceBundle::DRIVER_DOCTRINE_ORM]);
     $attributeChoiceFormType->setArguments(array('product', 'Some\\App\\Product\\Entity\\Attribute'));
     $attributeChoiceFormType->addTag('form.type', array('alias' => 'sylius_product_attribute_choice'));
     $container->setDefinition('sylius.form.type.product_attribute_choice', $attributeChoiceFormType)->shouldBeCalled();
     $attributeValueFormType = new Definition('Some\\App\\Product\\Form\\AttributeValueType');
     $attributeValueFormType->setArguments(array('Some\\App\\Product\\Entity\\AttributeValue', '%sylius.validation_group.product_attribute_value%', 'product'));
     $attributeValueFormType->addTag('form.type', array('alias' => 'sylius_product_attribute_value'));
     $container->setDefinition('sylius.form.type.product_attribute_value', $attributeValueFormType)->shouldBeCalled();
     $subjects = array('product' => array('subject' => 'Some\\App\\Product\\Entity\\Product', 'attribute' => array('model' => 'Some\\App\\Product\\Entity\\Attribute', 'form' => 'Some\\App\\Product\\Form\\AttributeType', 'translation' => array('model' => 'Some\\App\\Product\\Entity\\AttributeTranslation', 'form' => array('default' => 'Some\\App\\Product\\Form\\AttributeTranslationType'))), 'attribute_value' => array('model' => 'Some\\App\\Product\\Entity\\AttributeValue', 'form' => 'Some\\App\\Product\\Form\\AttributeValueType')));
     $container->setParameter('sylius.attribute.subjects', $subjects)->shouldBeCalled();
     $userConfig = array('driver' => SyliusResourceBundle::DRIVER_DOCTRINE_ORM, 'classes' => array('product' => array('subject' => 'Some\\App\\Product\\Entity\\Product', 'attribute' => array('model' => 'Some\\App\\Product\\Entity\\Attribute', 'form' => 'Some\\App\\Product\\Form\\AttributeType', 'translation' => array('model' => 'Some\\App\\Product\\Entity\\AttributeTranslation', 'form' => array('default' => 'Some\\App\\Product\\Form\\AttributeTranslationType'))), 'attribute_value' => array('model' => 'Some\\App\\Product\\Entity\\AttributeValue', 'form' => 'Some\\App\\Product\\Form\\AttributeValueType'))));
     $processedConfig = array('driver' => SyliusResourceBundle::DRIVER_DOCTRINE_ORM, 'classes' => array('product_attribute' => array('model' => 'Some\\App\\Product\\Entity\\Attribute', 'form' => 'Some\\App\\Product\\Form\\AttributeType', 'translation' => array('model' => 'Some\\App\\Product\\Entity\\AttributeTranslation', 'form' => array('default' => 'Some\\App\\Product\\Form\\AttributeTranslationType'))), 'product_attribute_value' => array('model' => 'Some\\App\\Product\\Entity\\AttributeValue', 'form' => 'Some\\App\\Product\\Form\\AttributeValueType')), 'validation_groups' => array('product_attribute' => array('sylius'), 'product_attribute_translation' => array('sylius'), 'product_attribute_value' => array('sylius')));
     $this->process($userConfig, $container)->shouldReturn($processedConfig);
 }
 /**
  * {@inheritdoc}
  */
 public function load(array $config, ContainerBuilder $container)
 {
     $config = $this->processConfiguration(new Configuration(), $config);
     $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
     $loader->load(sprintf('driver/%s.xml', $config['driver']));
     $this->registerResources('sylius', $config['driver'], $config['resources'], $container);
     $configFiles = ['services.xml'];
     foreach ($configFiles as $configFile) {
         $loader->load($configFile);
     }
     $factoryDefinition = new Definition(Factory::class);
     $factoryDefinition->setArguments([new Parameter('sylius.model.taxonomy.class')]);
     $translatableFactoryDefinition = $container->getDefinition('sylius.factory.taxonomy');
     $taxonomyFactoryClass = $translatableFactoryDefinition->getClass();
     $translatableFactoryDefinition->setClass(TranslatableFactory::class);
     $translatableFactoryDefinition->setArguments([$factoryDefinition, new Reference('sylius.translation.locale_provider')]);
     $decoratedTaxonomyFactoryDefinition = new Definition($taxonomyFactoryClass);
     $decoratedTaxonomyFactoryDefinition->setArguments([$translatableFactoryDefinition, new Reference('sylius.factory.taxon')]);
     $container->setDefinition('sylius.factory.taxonomy', $decoratedTaxonomyFactoryDefinition);
     $taxonFactoryDefinition = $container->getDefinition('sylius.factory.taxon');
     $taxonFactoryClass = $taxonFactoryDefinition->getClass();
     $taxonFactoryDefinition->setClass(TranslatableFactory::class);
     $decoratedTaxonFactoryDefinition = new Definition($taxonFactoryClass);
     $decoratedTaxonFactoryDefinition->addArgument($taxonFactoryDefinition)->addArgument(new Reference('sylius.repository.taxonomy'));
     $container->setDefinition('sylius.factory.taxon', $decoratedTaxonFactoryDefinition);
 }
 /**
  * Process the adaptor config configuration.
  *
  * @param array $config
  * @param ContainerBuilder $container
  */
 protected function loadConfigs(array $config, ContainerBuilder $container)
 {
     foreach ($config['configs'] as $name => $arguments) {
         if (!$arguments['enabled']) {
             continue;
         }
         $id = 'integrated_channel.config.memory.' . $name;
         if ($container->hasDefinition($id)) {
             continue;
         }
         // first create the options and for that we need a unique service id
         do {
             $id_options = $id . '.options.' . uniqid();
         } while ($container->hasDefinition($id_options));
         $definition = new Definition('%integrated_channel.config.options.class%');
         $definition->setPublic(false);
         $definition->setArguments([$arguments['options']]);
         $container->setDefinition($id_options, $definition);
         // create the config it self
         $definition = new Definition('%integrated_channel.config.class%');
         $definition->setArguments([$name, $arguments['adaptor'], new Reference($id_options)]);
         if ($arguments['channel']) {
             foreach ($arguments['channel'] as $channel) {
                 $definition->addTag('integrated_channel.config', ['channel' => $channel]);
             }
         } else {
             $definition->addTag('integrated_channel.config');
         }
         $container->setDefinition($id, $definition);
     }
 }
Example #8
0
 /**
  * {@inheritdoc}
  */
 public function createDefinition(ContainerBuilder $container, array $config)
 {
     $definition = new Definition('Jose\\Object\\X5UJWKSet');
     $definition->setFactory([new Reference('jose.factory.jwk'), 'createFromX5U']);
     $definition->setArguments([$config['url'], $config['is_secured'], $config['cache'], $config['cache_ttl'], $config['is_https']]);
     return $definition;
 }
Example #9
0
 /**
  * {@inheritdoc}
  */
 public function createDefinition(ContainerBuilder $container, array $config)
 {
     $definition = new Definition('Jose\\Object\\JWK');
     $definition->setFactory([new Reference('jose.factory.jwk'), 'createFromCertificate']);
     $definition->setArguments([$config['value']]);
     return $definition;
 }
 public function testProcessWithAddTemplates()
 {
     $container = $this->getContainer();
     $layoutLoaderDef = new Definition(TwigLayoutLoader::class);
     $mailLoaderDef = new Definition(TwigLayoutLoader::class);
     $layoutLoaderDef->setArguments(array(array()));
     $mailLoaderDef->setArguments(array(array()));
     $container->setDefinition('sonatra_mailer.loader.layout_twig', $layoutLoaderDef);
     $container->setDefinition('sonatra_mailer.loader.mail_twig', $mailLoaderDef);
     $this->assertCount(0, $layoutLoaderDef->getArgument(0));
     $this->assertCount(0, $mailLoaderDef->getArgument(0));
     // array loader
     $layoutArrayLoaderDef = new Definition(ArrayLayoutLoader::class);
     $mailArrayLoaderDef = new Definition(ArrayLayoutLoader::class);
     $layoutArrayLoaderDef->setArguments(array(array()));
     $mailArrayLoaderDef->setArguments(array(array()));
     $container->setDefinition('sonatra_mailer.loader.layout_array', $layoutArrayLoaderDef);
     $container->setDefinition('sonatra_mailer.loader.mail_array', $mailArrayLoaderDef);
     $this->assertCount(0, $layoutArrayLoaderDef->getArgument(0));
     $this->assertCount(0, $mailArrayLoaderDef->getArgument(0));
     // add mocks
     $layoutLoaderDef->replaceArgument(0, array(array('name' => 'layout-test', 'file' => __DIR__ . '/../../Fixtures/loaders/layout.html.twig', 'translations' => array(array('locale' => 'fr', 'file' => __DIR__ . '/../../Fixtures/loaders/layout.fr.html.twig')))));
     $mailLoaderDef->replaceArgument(0, array(array('name' => 'mail-test', 'file' => __DIR__ . '/../../Fixtures/loaders/mail.html.twig', 'layout' => 'layout-test', 'translations' => array(array('locale' => 'fr', 'file' => __DIR__ . '/../../Fixtures/loaders/mail.fr.html.twig')))));
     // test
     $this->pass->process($container);
     $this->assertFalse($container->has('sonatra_mailer.loader.layout_twig'));
     $this->assertFalse($container->has('sonatra_mailer.loader.mail_twig'));
 }
Example #11
0
 /**
  * {@inheritdoc}
  */
 protected function addRepository(ContainerBuilder $container, MetadataInterface $metadata)
 {
     $reflection = new \ReflectionClass($metadata->getClass('model'));
     $translatableInterface = 'Sylius\\Component\\Translation\\Model\\TranslatableInterface';
     $translatable = interface_exists($translatableInterface) && $reflection->implementsInterface($translatableInterface);
     $repositoryClassParameterName = sprintf('%s.repository.%s.class', $metadata->getApplicationName(), $metadata->getName());
     $repositoryClass = $translatable ? 'Sylius\\Bundle\\TranslationBundle\\Doctrine\\ORM\\TranslatableResourceRepository' : 'Sylius\\Bundle\\ResourceBundle\\Doctrine\\ORM\\EntityRepository';
     if ($container->hasParameter($repositoryClassParameterName)) {
         $repositoryClass = $container->getParameter($repositoryClassParameterName);
     }
     if ($metadata->hasClass('repository')) {
         $repositoryClass = $metadata->getClass('repository');
     }
     $definition = new Definition($repositoryClass);
     $definition->setArguments(array(new Reference($metadata->getServiceId('manager')), $this->getClassMetadataDefinition($metadata)));
     if ($metadata->hasParameter('translation')) {
         $repositoryReflection = new \ReflectionClass($repositoryClass);
         $translatableRepositoryInterface = 'Sylius\\Component\\Translation\\Repository\\TranslatableResourceRepositoryInterface';
         $translationConfig = $metadata->getParameter('translation');
         if (interface_exists($translatableRepositoryInterface) && $repositoryReflection->implementsInterface($translatableRepositoryInterface)) {
             if (isset($translationConfig['fields'])) {
                 $definition->addMethodCall('setTranslatableFields', array($translationConfig['fields']));
             }
         }
     }
     $container->setDefinition($metadata->getServiceId('repository'), $definition);
 }
 /**
  * {@inheritdoc}
  */
 public function load(array $configs, ContainerBuilder $container)
 {
     $configuration = new Configuration();
     $config = $this->processConfiguration($configuration, $configs);
     $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
     $loader->load('services.yml');
     foreach ($config['connections'] as $name => $values) {
         $def = new Definition();
         $def->setClass($container->getParameter('agentsib_sphinx.connection.class'));
         $params = array('host' => $values['host'], 'port' => $values['port']);
         if ($values['socket']) {
             $params['socket'] = $values['socket'];
         }
         $def->setArguments(array($name, $values['driver'], $params));
         $def->addMethodCall('addLogger', array(new Reference('agentsib_sphinx.logger')));
         $container->setDefinition(sprintf('agentsib_sphinx.%s.connection', $name), $def);
         $helperDef = new DefinitionDecorator('agentsib_sphinx.factory.helper');
         $helperDef->setFactoryClass($container->getParameter('agentsib_sphinx.helper.class'));
         $helperDef->setFactoryMethod('create');
         $helperDef->addArgument(new Reference(sprintf('agentsib_sphinx.%s.connection', $name)));
         $helperDef->setPublic(true);
         $container->setDefinition(sprintf('agentsib_sphinx.%s.helper', $name), $helperDef);
         if ($name == $config['default_connection']) {
             $container->setAlias('agentsib_sphinx.connection', sprintf('agentsib_sphinx.%s.connection', $name));
             $container->setAlias('agentsib_sphinx.helper', sprintf('agentsib_sphinx.%s.helper', $name));
         }
     }
 }
 /**
  * Build the 'lexik_translation.translation_storage' service definition.
  *
  * @param ContainerBuilder $container
  * @param string           $storage
  * @param string           $objectManager
  */
 protected function buildTranslationStorageDefinition(ContainerBuilder $container, $storage, $objectManager)
 {
     $container->setParameter('lexik_translation.storage.type', $storage);
     if ('orm' == $storage) {
         if (isset($objectManager)) {
             $objectManagerReference = new Reference(sprintf('doctrine.orm.%s_entity_manager', $objectManager));
         } else {
             $objectManagerReference = new Reference('doctrine.orm.entity_manager');
         }
     } else {
         if ('mongodb' == $storage) {
             if (isset($objectManager)) {
                 $objectManagerReference = new Reference(sprintf('doctrine_mongodb.odm.%s_document_manager', $objectManager));
             } else {
                 $objectManagerReference = new Reference('doctrine.odm.mongodb.document_manager');
             }
         } else {
             if ('propel' == $storage) {
                 // In the Propel case the object_manager setting is used for the connection name
                 if (isset($objectManager)) {
                     $objectManagerReference = $objectManager;
                 } else {
                     $objectManagerReference = null;
                 }
             } else {
                 throw new \RuntimeException(sprintf('Unsupported storage "%s".', $storage));
             }
         }
     }
     $storageDefinition = new Definition();
     $storageDefinition->setClass(new Parameter(sprintf('lexik_translation.%s.translation_storage.class', $storage)));
     $storageDefinition->setArguments(array($objectManagerReference, array('trans_unit' => new Parameter(sprintf('lexik_translation.%s.trans_unit.class', $storage)), 'translation' => new Parameter(sprintf('lexik_translation.%s.translation.class', $storage)), 'file' => new Parameter(sprintf('lexik_translation.%s.file.class', $storage)))));
     $container->setDefinition('lexik_translation.translation_storage', $storageDefinition);
 }
 /**
  * @inheritDoc
  */
 public function createServiceDefinitions(array $data, ContainerBuilder $container, $prefix)
 {
     if (!isset($data['host'])) {
         throw new UrlResolveException("No region hostname found in url");
     }
     if (!isset($data['user'])) {
         throw new UrlResolveException("No key (username) found in url");
     }
     if (!isset($data['pass'])) {
         throw new UrlResolveException("No secret (password) found in url");
     }
     if (!isset($data['clean_path'])) {
         throw new UrlResolveException("No bucket name (path) found in url");
     }
     $region = $data['host'];
     $key = $data['user'];
     $secret = $data['pass'];
     $bucket = $data['clean_path'];
     $adapterPrefix = null;
     if (isset($data['prefix'])) {
         $adapterPrefix = $data['prefix'];
     }
     $version = 'latest';
     if (isset($data['version'])) {
         $version = $data['version'];
     }
     $client = new Definition('Aws\\S3\\S3Client');
     $client->setFactory(['Aws\\S3\\S3Client', 'factory']);
     $client->setArguments([['credentials' => ['key' => $key, 'secret' => $secret], 'region' => $region, 'version' => $version]]);
     $container->setDefinition("{$prefix}.client", $client);
     $container->setDefinition("{$prefix}.adapter", new Definition('League\\Flysystem\\AwsS3v3\\AwsS3Adapter', [new Reference("{$prefix}.client"), $bucket, $adapterPrefix]));
     return "{$prefix}.adapter";
 }
 function it_processes_the_configuration_and_registers_services_per_variable(ContainerBuilder $container)
 {
     $variantFormType = new Definition('Some\\App\\Product\\Form\\ProductVariantType');
     $variantFormType->setArguments(array('Some\\App\\Product\\Entity\\ProductVariant', '%sylius.validation_group.product_variant%', 'product'))->addTag('form.type', array('alias' => 'sylius_product_variant'));
     $container->setDefinition('sylius.form.type.product_variant', $variantFormType)->shouldBeCalled();
     $variantChoiceFormType = new Definition('Sylius\\Bundle\\VariationBundle\\Form\\Type\\VariantChoiceType');
     $variantChoiceFormType->setArguments(array('product'))->addTag('form.type', array('alias' => 'sylius_product_variant_choice'));
     $container->setDefinition('sylius.form.type.product_variant_choice', $variantChoiceFormType)->shouldBeCalled();
     $variantMatchFormType = new Definition('Sylius\\Bundle\\VariationBundle\\Form\\Type\\VariantMatchType');
     $variantMatchFormType->setArguments(array('product'))->addTag('form.type', array('alias' => 'sylius_product_variant_match'));
     $container->setDefinition('sylius.form.type.product_variant_match', $variantMatchFormType)->shouldBeCalled();
     $optionFormType = new Definition('Some\\App\\Product\\Form\\OptionType');
     $optionFormType->setArguments(array('Some\\App\\Product\\Entity\\Option', '%sylius.validation_group.product_option%', 'product'))->addTag('form.type', array('alias' => 'sylius_product_option'));
     $container->setDefinition('sylius.form.type.product_option', $optionFormType)->shouldBeCalled();
     $optionChoiceFormType = new Definition('Sylius\\Bundle\\VariationBundle\\Form\\Type\\OptionEntityChoiceType');
     $optionChoiceFormType->setArguments(array('product', 'Some\\App\\Product\\Entity\\Option'))->addTag('form.type', array('alias' => 'sylius_product_option_choice'));
     $container->setDefinition('sylius.form.type.product_option_choice', $optionChoiceFormType)->shouldBeCalled();
     $optionValueFormType = new Definition('Some\\App\\Product\\Form\\OptionValueType');
     $optionValueFormType->setArguments(array('Some\\App\\Product\\Entity\\OptionValue', '%sylius.validation_group.product_option_value%', 'product'))->addTag('form.type', array('alias' => 'sylius_product_option_value'));
     $container->setDefinition('sylius.form.type.product_option_value', $optionValueFormType)->shouldBeCalled();
     $optionValueChoiceFormType = new Definition('Sylius\\Bundle\\VariationBundle\\Form\\Type\\OptionValueChoiceType');
     $optionValueChoiceFormType->setArguments(array('product'))->addTag('form.type', array('alias' => 'sylius_product_option_value_choice'));
     $container->setDefinition('sylius.form.type.product_option_value_choice', $optionValueChoiceFormType)->shouldBeCalled();
     $optionValueCollectionFormType = new Definition('Sylius\\Bundle\\VariationBundle\\Form\\Type\\OptionValueCollectionType');
     $optionValueCollectionFormType->setArguments(array('product'))->addTag('form.type', array('alias' => 'sylius_product_option_value_collection'));
     $container->setDefinition('sylius.form.type.product_option_value_collection', $optionValueCollectionFormType)->shouldBeCalled();
     $variables = array('product' => array('variable' => 'Some\\App\\Product\\Entity\\Product', 'option' => array('model' => 'Some\\App\\Product\\Entity\\Option', 'form' => 'Some\\App\\Product\\Form\\OptionType'), 'option_value' => array('model' => 'Some\\App\\Product\\Entity\\OptionValue', 'form' => 'Some\\App\\Product\\Form\\OptionValueType'), 'variant' => array('model' => 'Some\\App\\Product\\Entity\\ProductVariant', 'form' => 'Some\\App\\Product\\Form\\ProductVariantType')));
     $container->setParameter('sylius.variation.variables', $variables)->shouldBeCalled();
     $userConfig = array('driver' => SyliusResourceBundle::DRIVER_DOCTRINE_ORM, 'classes' => array('product' => array('variable' => 'Some\\App\\Product\\Entity\\Product', 'option' => array('model' => 'Some\\App\\Product\\Entity\\Option', 'form' => 'Some\\App\\Product\\Form\\OptionType'), 'option_value' => array('model' => 'Some\\App\\Product\\Entity\\OptionValue', 'form' => 'Some\\App\\Product\\Form\\OptionValueType'), 'variant' => array('model' => 'Some\\App\\Product\\Entity\\ProductVariant', 'form' => 'Some\\App\\Product\\Form\\ProductVariantType'))));
     $processedConfig = array('driver' => SyliusResourceBundle::DRIVER_DOCTRINE_ORM, 'classes' => array('product_option' => array('model' => 'Some\\App\\Product\\Entity\\Option', 'form' => 'Some\\App\\Product\\Form\\OptionType'), 'product_option_value' => array('model' => 'Some\\App\\Product\\Entity\\OptionValue', 'form' => 'Some\\App\\Product\\Form\\OptionValueType'), 'product_variant' => array('model' => 'Some\\App\\Product\\Entity\\ProductVariant', 'form' => 'Some\\App\\Product\\Form\\ProductVariantType')), 'validation_groups' => array('product_variant' => array('sylius'), 'product_option' => array('sylius'), 'product_option_value' => array('sylius')));
     $this->process($userConfig, $container)->shouldReturn($processedConfig);
 }
Example #16
0
 /**
  * {@inheritDoc}
  */
 public function configure($name, array $config, Definition $service, ContainerBuilder $container)
 {
     $sqlite3Conf = $config['sqlite3'];
     $tableName = $sqlite3Conf['table_name'];
     $connectionRef = $this->getConnectionReference($name, $sqlite3Conf, $container);
     $service->setArguments(array($connectionRef, $tableName));
 }
 private function convertFactoryDefinition(ContainerBuilder $container, $definition)
 {
     $symfonyDefinition = new Definition('Class');
     $symfonyDefinition->setFactory([$this->convertArguments($container, $definition->getFactory()), $definition->getMethodName()]);
     $symfonyDefinition->setArguments($this->convertArguments($container, $definition->getArguments()));
     return $symfonyDefinition;
 }
Example #18
0
 /**
  * {@inheritdoc}
  */
 public function createDefinition(ContainerBuilder $container, array $config)
 {
     $definition = new Definition('Jose\\Object\\StorableJWK');
     $definition->setFactory([new Reference('jose.factory.jwk'), 'createStorableKey']);
     $definition->setArguments([$config['storage_path'], $this->getKeyConfig($config)]);
     return $definition;
 }
Example #19
0
 public function load(array $configs, ContainerBuilder $container)
 {
     foreach ($configs as $config) {
         if ($this->isConnectionConfig($config)) {
             $connectionConfig = $config;
         }
     }
     if ($container->hasParameter('connection_config')) {
         $connectionConfig = $container->getParameter('connection_config');
     }
     $this->defineParameters($container);
     $definition = new Definition('Symfony\\Component\\EventDispatcher\\ContainerAwareEventDispatcher');
     $definition->setArguments(array(new Reference('service_container')));
     $container->setDefinition('event_dispatcher', $definition);
     $definition = new Definition('Rentgen\\Schema\\Manipulation');
     $definition->setArguments(array(new Reference('service_container')));
     $container->setDefinition('rentgen.schema.manipulation', $definition);
     $definition = new Definition('Rentgen\\Schema\\Info');
     $definition->setArguments(array(new Reference('service_container')));
     $container->setDefinition('rentgen.schema.info', $definition);
     if (!isset($connectionConfig)) {
         $fileLocator = new FileLocator(getcwd());
         try {
             $configFile = $fileLocator->locate('rentgen.yml');
             $content = file_get_contents('rentgen.yml');
             $config = Yaml::parse($content);
             $connectionConfig = $config;
         } catch (\InvalidArgumentException $e) {
             $connectionConfig['environments']['dev'] = array('adapter' => 'pgsql', 'host' => 'localhost', 'database' => null, 'username' => 'postgres', 'password' => '', 'port' => 5432);
         }
     }
     $definition = new Definition('Rentgen\\Database\\Connection\\ConnectionConfig');
     $definition->setArguments(array($connectionConfig['environments']));
     $container->setDefinition('connection_config', $definition);
     $definition = new Definition('Rentgen\\Database\\Connection\\Connection');
     $definition->setArguments(array(new Reference('connection_config')));
     $container->setDefinition('connection', $definition);
     $this->connection = $container->getDefinition('connection');
     $this->eventDispatcher = $container->getDefinition('event_dispatcher');
     $this->setDefinition('rentgen.create_table', 'rentgen.command.manipulation.create_table.class', $container);
     $this->setDefinition('rentgen.drop_table', 'rentgen.command.manipulation.drop_table.class', $container);
     $this->setDefinition('rentgen.add_column', 'rentgen.command.manipulation.add_column.class', $container);
     $this->setDefinition('rentgen.drop_column', 'rentgen.command.manipulation.drop_column.class', $container);
     $this->setDefinition('rentgen.add_constraint', 'rentgen.command.manipulation.add_constraint.class', $container);
     $this->setDefinition('rentgen.drop_constraint', 'rentgen.command.manipulation.drop_constraint.class', $container);
     $this->setDefinition('rentgen.create_index', 'rentgen.command.manipulation.create_index.class', $container);
     $this->setDefinition('rentgen.create_schema', 'rentgen.command.manipulation.create_schema.class', $container);
     $this->setDefinition('rentgen.drop_schema', 'rentgen.command.manipulation.drop_schema.class', $container);
     $this->setDefinition('rentgen.drop_index', 'rentgen.command.manipulation.drop_index.class', $container);
     $this->setDefinition('rentgen.table_exists', 'rentgen.command.info.table_exists.class', $container);
     $this->setDefinition('rentgen.get_table', 'rentgen.command.info.get_table.class', $container);
     $this->setDefinition('rentgen.get_tables', 'rentgen.command.info.get_tables.class', $container);
     $this->setDefinition('rentgen.get_schemas', 'rentgen.command.info.get_schemas.class', $container);
     $this->setDefinition('rentgen.schema_exists', 'rentgen.command.info.schema_exists.class', $container);
     $definition = new Definition($container->getParameter('rentgen.command.manipulation.clear_database.class'), array(new Reference('rentgen.get_schemas')));
     $definition->addMethodCall('setConnection', array(new Reference('connection')));
     $definition->addMethodCall('setEventDispatcher', array(new Reference('event_dispatcher')));
     $container->setDefinition('rentgen.clear_database', $definition);
 }
 /**
  * {@inheritdoc}
  */
 protected function createFactoryDefinition(ContainerBuilder $container, $config)
 {
     $factoryClass = $config['factory'];
     $modelClass = $config['model'];
     $definition = new Definition($factoryClass);
     $definition->setArguments([$modelClass]);
     $container->setDefinition('swp.factory.' . $config['name'], $definition);
 }
Example #21
0
 /**
  * @param string $commandName
  * @param array $commandOptions
  *
  * @return Definition
  */
 private function generateCommandDefinition($commandName, array $commandOptions)
 {
     $commandOptions = $this->optionsResolver->resolve($commandOptions);
     $definition = new Definition('PhpZone\\Docker\\Console\\Command\\DockerComposeCommand');
     $definition->setArguments(array($commandName, $commandOptions, new Reference('phpzone.docker.script_builder.docker_compose')));
     $definition->addTag('command');
     return $definition;
 }
 /**
  * {@inheritdoc}
  */
 protected function addDefaultForm(ContainerBuilder $container, MetadataInterface $metadata)
 {
     $defaultFormBuilderDefinition = new Definition(DefaultFormBuilder::class);
     $defaultFormBuilderDefinition->setArguments([new Reference($metadata->getServiceId('manager'))]);
     $definition = new Definition(DefaultResourceType::class);
     $definition->setArguments([$this->getMetdataDefinition($metadata), $defaultFormBuilderDefinition])->addTag('form.type', ['alias' => sprintf('%s_%s', $metadata->getApplicationName(), $metadata->getName())]);
     $container->setDefinition(sprintf('%s.form.type.%s', $metadata->getApplicationName(), $metadata->getName()), $definition);
 }
 /**
  * Build the listener that published messages to the queue.
  *
  * @param ContainerBuilder $container
  * @param string           $id
  *
  * @return void
  */
 protected function addToEventBus(ContainerBuilder $container, $id)
 {
     $target = $container->getDefinition('broadway.event_handling.event_bus');
     $definition = new Definition();
     $definition->setClass('Simgroep\\EventSourcing\\EventHandling\\PublishMessageToQueue');
     $definition->setArguments(array(new Reference($id)));
     $target->addMethodCall('subscribe', array($definition));
 }
Example #24
0
 /**
  * @param string $commandName
  * @param array $commandOptions
  *
  * @return Definition
  *
  * @throws MissingOptionsException
  * @throws InvalidOptionsException
  */
 private function generateCommandDefinition($commandName, array $commandOptions)
 {
     $resolvedCommandOptions = $this->optionsResolver->resolve($commandOptions);
     $definition = new Definition('PhpZone\\Shell\\Console\\Command\\BatchScriptCommand');
     $definition->setArguments(array($commandName, $resolvedCommandOptions));
     $definition->addTag('command');
     return $definition;
 }
Example #25
0
 public function getEntityMetadataDefinition($entity, $entityManager)
 {
     $definition = new Definition('Doctrine\\ORM\\Mapping\\ClassMetadata');
     $definition->setFactoryService($this->resolveEntityManagerId($entityManager));
     $definition->setFactoryMethod('getClassMetadata');
     $definition->setArguments(array($entity));
     return $definition;
 }
 protected function addProvider(ContainerBuilder $container, $providerClass, $modelName)
 {
     $providerReflection = new \ReflectionClass($providerClass);
     $definition = new Definition($providerClass);
     $definition->setArguments([new Reference(sprintf('%s.repository.%s', $this->applicationName, $modelName)), new Reference(sprintf('%s.factory.%s', $this->applicationName, $modelName))]);
     $definition->setLazy(!$providerReflection->isFinal());
     $container->setDefinition(sprintf('%s.provider.%s', $this->applicationName, $modelName), $definition);
 }
 function it_should_create_choice_form_definition(ContainerBuilder $container)
 {
     $this->mockDefaultBehavior($container);
     $definition = new Definition('Sylius\\ChoiceFormType');
     $definition->setArguments(array('Sylius\\Model', SyliusResourceBundle::DRIVER_DOCTRINE_PHPCR_ODM, 'sylius_resource_choice'))->addTag('form.type', array('alias' => 'sylius_resource_choice'));
     $container->setDefinition('sylius.form.type.resource_choice', Argument::exact($definition))->shouldBeCalled();
     $this->configure(array('sylius' => array('driver' => SyliusResourceBundle::DRIVER_DOCTRINE_PHPCR_ODM, 'classes' => array('resource' => array('form' => array('choice' => 'Sylius\\ChoiceFormType'))))), new Configuration(), $container, AbstractResourceExtension::CONFIGURE_FORMS);
 }
 public function it_should_process(ContainerBuilder $c, Definition $definition)
 {
     $c->findTaggedServiceIds('hector.publisher')->shouldBeCalled()->willReturn(['publisher' => [['routing_key_prefix' => 'foo', 'exchange' => 'bar']]]);
     $definition->setFactory([new Reference('hector.publisher.factory'), 'create'])->shouldBeCalled();
     $definition->setArguments(['default', 'bar', null, ['routing_key_prefix' => 'foo']])->shouldBeCalled();
     $c->getDefinition('publisher')->shouldBeCalled()->willReturn($definition);
     $this->process($c);
 }
 private function buildServiceProxyFactoryDefinition($taggedServiceName, $tagParameters)
 {
     $definition = $this->container->findDefinition($taggedServiceName);
     $factoryDefinition = new Definition();
     $factoryDefinition->setFactory([new Reference('openclassrooms.service_proxy.service_proxy_factory'), 'create']);
     $factoryDefinition->setArguments([$definition, $tagParameters[0]]);
     $this->container->setDefinition($taggedServiceName, $factoryDefinition);
 }
 /**
  * {@inheritdoc}
  */
 protected function processReferences($connectionServiceId, array $referencesConfig, ContainerBuilder $container)
 {
     foreach ($referencesConfig as $key => $value) {
         $referenceDefinition = new Definition();
         $referenceDefinition->setClass('Kreait\\Firebase\\Reference');
         $referenceDefinition->setArguments(array(new Reference($connectionServiceId), $value));
         $container->setDefinition('kreait_firebase.reference.' . $key, $referenceDefinition);
     }
 }