/** * Register a a view element to the view element registry * * @param Definition $registryDefinition * @param string $serviceId * @param array $tag */ protected function registerViewElement($registryDefinition, $serviceId, $tag) { if (!isset($tag['type'])) { throw new \LogicException(sprintf('No type provided for the "%s" view element', $serviceId)); } $position = isset($tag['position']) ? $tag['position'] : static::DEFAULT_POSITION; $registryDefinition->addMethodCall('add', [$this->factory->createReference($serviceId), $tag['type'], $position]); }
function it_adds_tagged_operators_to_the_operator_registry(ContainerBuilder $container, ReferenceFactory $factory, Reference $fooRef, Definition $registryDef) { $container->findTaggedServiceIds('pim_enrich.mass_edit_action_operator')->willReturn(['foo' => [['datagrid' => 'foo-grid']]]); $factory->createReference('foo')->willReturn($fooRef); $container->hasDefinition('pim_enrich.mass_edit_action.operator.registry')->willReturn(true); $container->getDefinition('pim_enrich.mass_edit_action.operator.registry')->willReturn($registryDef); $registryDef->addMethodCall('register', ['foo-grid', $fooRef])->shouldBeCalled(); $this->process($container); }
/** * {@inheritdoc} */ public function process(ContainerBuilder $container) { $registry = $container->getDefinition(self::OPERATION_REGISTRY); $operations = $container->findTaggedServiceIds(self::OPERATION_TAG); foreach ($operations as $operationId => $operation) { $config = $operation[0]; $registry->addMethodCall('register', [$this->referenceFactory->createReference($operationId), $config['alias'], $config['datagrid'], $config['operation_group'], isset($config['acl']) ? $config['acl'] : null]); } }
/** * {@inheritdoc} */ public function process(ContainerBuilder $container) { if (!$container->hasDefinition('pim_enrich.mass_edit_action.operator.registry')) { return; } $def = $container->getDefinition('pim_enrich.mass_edit_action.operator.registry'); foreach ($container->findTaggedServiceIds('pim_enrich.mass_edit_action_operator') as $id => $config) { $def->addMethodCall('register', [$config[0]['datagrid'], $this->factory->createReference($id)]); } }
function it_register_mass_edit_actions_in_a_specific_operator(ContainerBuilder $container, ReferenceFactory $factory, Definition $productOperatorDef, Definition $someOperatorDef, Reference $fooRef, Reference $barRef) { $container->findTaggedServiceIds('pim_enrich.mass_edit_action')->willReturn(['foo' => [['alias' => 'foo-action']], 'bar' => [['alias' => 'bar-action', 'operator' => 'some_operator']]]); $container->getDefinition('pim_enrich.mass_edit_action.operator.product')->willReturn($productOperatorDef); $container->getDefinition('some_operator')->willReturn($someOperatorDef); $factory->createReference('foo')->willReturn($fooRef); $factory->createReference('bar')->willReturn($barRef); $productOperatorDef->addMethodCall('registerMassEditAction', ['foo-action', $fooRef, null])->shouldBeCalled(); $someOperatorDef->addMethodCall('registerMassEditAction', ['bar-action', $barRef, null])->shouldBeCalled(); $this->process($container); }
/** * {@inheritdoc} */ public function process(ContainerBuilder $container) { foreach ($container->findTaggedServiceIds('pim_enrich.mass_edit_action') as $id => $config) { // Mass Edit Action was originally used by the product grid // so, in order not to break BC, we fallback operator to the product one. // We may deprecate this behaviour in the future and enforce operator parameter // inside the tag. $operatorId = isset($config[0]['operator']) ? $config[0]['operator'] : 'pim_enrich.mass_edit_action.operator.product'; $operatorDef = $container->getDefinition($operatorId); $operatorDef->addMethodCall('registerMassEditAction', [$config[0]['alias'], $this->factory->createReference($id), isset($config[0]['acl']) ? $config[0]['acl'] : null]); } }
/** * {@inheritdoc} */ public function process(ContainerBuilder $container) { if (!$container->hasDefinition(self::REGISTRY_ID)) { return; } $registryDefinition = $container->getDefinition(self::REGISTRY_ID); $providers = []; foreach ($container->findTaggedServiceIds(self::SERVICE_TAG) as $serviceId => $tags) { foreach ($tags as $tag) { $priority = isset($tag['priority']) ? $tag['priority'] : static::DEFAULT_PRIORITY; $providers[$priority][] = $this->factory->createReference($serviceId); } } ksort($providers); foreach ($providers as $sortedProviders) { foreach ($sortedProviders as $provider) { $registryDefinition->addMethodCall('register', [$provider]); } } }
/** * {@inheritdoc} */ public function process(ContainerBuilder $container) { if (!$container->hasDefinition(sprintf(static::REGISTRY_ID, $this->providerType))) { return; } $registryDefinition = $container->getDefinition(sprintf(static::REGISTRY_ID, $this->providerType)); $providers = []; foreach ($container->findTaggedServiceIds(sprintf(static::PROVIDER_TAG, $this->providerType)) as $serviceId => $tags) { foreach ($tags as $tag) { $priority = isset($tag['priority']) ? $tag['priority'] : static::DEFAULT_PRIORITY; if (!isset($providers[$priority])) { $providers[$priority] = []; } $providers[$priority][] = $this->factory->createReference($serviceId); } } ksort($providers); foreach ($providers as $unsortedProviders) { foreach ($unsortedProviders as $provider) { $registryDefinition->addMethodCall('addProvider', [$provider]); } } }
/** * Register a a view element to the view element registry * * @param Definition $registryDefinition * @param string $serviceId * @param array $tag */ protected function registerViewUpdater(Definition $registryDefinition, $serviceId, $tag) { $position = isset($tag['position']) ? $tag['position'] : static::DEFAULT_POSITION; $registryDefinition->addMethodCall('registerUpdater', [$this->factory->createReference($serviceId), $position]); }