/**
  * {@inheritdoc}
  */
 public function load(array $config, ContainerBuilder $container)
 {
     $processor = new Processor();
     $config = $processor->processConfiguration(new Configuration(), $config);
     $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
     $configFiles = ['services.xml', 'controller.xml', 'storage.xml', 'routing.xml', 'twig.xml'];
     foreach ($configFiles as $configFile) {
         $loader->load($configFile);
     }
     foreach ($config['resources'] as $alias => $resourceConfig) {
         $metadata = Metadata::fromAliasAndConfiguration($alias, $resourceConfig);
         $resources = $container->hasParameter('sylius.resources') ? $container->getParameter('sylius.resources') : [];
         $resources = array_merge($resources, [$alias => $resourceConfig]);
         $container->setParameter('sylius.resources', $resources);
         DriverProvider::get($metadata)->load($container, $metadata);
         if ($metadata->hasParameter('translation') && class_exists(SyliusTranslationBundle::class)) {
             $alias = $alias . '_translation';
             $resourceConfig = array_merge(['driver' => $resourceConfig['driver']], $resourceConfig['translation']);
             $resources = $container->hasParameter('sylius.resources') ? $container->getParameter('sylius.resources') : [];
             $resources = array_merge($resources, [$alias => $resourceConfig]);
             $container->setParameter('sylius.resources', $resources);
             $metadata = Metadata::fromAliasAndConfiguration($alias, $resourceConfig);
             DriverProvider::get($metadata)->load($container, $metadata);
         }
     }
     $container->setParameter('sylius.resource.settings', $config['settings']);
 }
 private function loadResources(array $resources, ContainerBuilder $container)
 {
     foreach ($resources as $alias => $resourceConfig) {
         $metadata = Metadata::fromAliasAndConfiguration($alias, $resourceConfig);
         $resources = $container->hasParameter('sylius.resources') ? $container->getParameter('sylius.resources') : [];
         $resources = array_merge($resources, [$alias => $resourceConfig]);
         $container->setParameter('sylius.resources', $resources);
         DriverProvider::get($metadata)->load($container, $metadata);
         if ($metadata->hasParameter('translation')) {
             $alias = $alias . '_translation';
             $resourceConfig = array_merge(['driver' => $resourceConfig['driver']], $resourceConfig['translation']);
             $resources = $container->hasParameter('sylius.resources') ? $container->getParameter('sylius.resources') : [];
             $resources = array_merge($resources, [$alias => $resourceConfig]);
             $container->setParameter('sylius.resources', $resources);
             $metadata = Metadata::fromAliasAndConfiguration($alias, $resourceConfig);
             DriverProvider::get($metadata)->load($container, $metadata);
         }
     }
 }
 /**
  * {@inheritdoc}
  */
 public function load(array $config, ContainerBuilder $container)
 {
     $processor = new Processor();
     $config = $processor->processConfiguration(new Configuration(), $config);
     $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
     $configFiles = ['services.xml', 'controller.xml', 'storage.xml', 'routing.xml', 'twig.xml'];
     foreach ($configFiles as $configFile) {
         $loader->load($configFile);
     }
     $bundles = $container->getParameter('kernel.bundles');
     if (array_key_exists('SyliusGridBundle', $bundles)) {
         $loader->load('grid.xml');
     }
     if ($config['translation']['enabled']) {
         $loader->load('translation.xml');
         $container->setParameter('sylius.translation.default_locale', $config['translation']['default_locale']);
         $container->setAlias('sylius.translation.locale_provider', $config['translation']['locale_provider']);
         $container->setAlias('sylius.translation.available_locales_provider', $config['translation']['available_locales_provider']);
         $container->setParameter('sylius.translation.available_locales', $config['translation']['available_locales']);
     }
     foreach ($config['resources'] as $alias => $resourceConfig) {
         $metadata = Metadata::fromAliasAndConfiguration($alias, $resourceConfig);
         $resources = $container->hasParameter('sylius.resources') ? $container->getParameter('sylius.resources') : [];
         $resources = array_merge($resources, [$alias => $resourceConfig]);
         $container->setParameter('sylius.resources', $resources);
         DriverProvider::get($metadata)->load($container, $metadata);
         if ($metadata->hasParameter('translation')) {
             $alias = $alias . '_translation';
             $resourceConfig = array_merge(['driver' => $resourceConfig['driver']], $resourceConfig['translation']);
             $resources = $container->hasParameter('sylius.resources') ? $container->getParameter('sylius.resources') : [];
             $resources = array_merge($resources, [$alias => $resourceConfig]);
             $container->setParameter('sylius.resources', $resources);
             $metadata = Metadata::fromAliasAndConfiguration($alias, $resourceConfig);
             DriverProvider::get($metadata)->load($container, $metadata);
         }
     }
     $container->setParameter('sylius.resource.settings', $config['settings']);
     $container->setAlias('sylius.resource_controller.authorization_checker', $config['authorization_checker']);
 }
 /**
  * @param string $applicationName
  * @param string $driver
  * @param array $resources
  * @param ContainerBuilder $container
  */
 protected function registerResources($applicationName, $driver, array $resources, ContainerBuilder $container)
 {
     $container->setParameter(sprintf('%s.driver.%s', $this->getAlias(), $driver), true);
     $container->setParameter(sprintf('%s.driver', $this->getAlias()), $driver);
     foreach ($resources as $resourceName => $resourceConfig) {
         $alias = $applicationName . '.' . $resourceName;
         $resourceConfig = array_merge(array('driver' => $driver), $resourceConfig);
         $resources = $container->hasParameter('sylius.resources') ? $container->getParameter('sylius.resources') : array();
         $resources = array_merge($resources, array($alias => $resourceConfig));
         $container->setParameter('sylius.resources', $resources);
         $metadata = Metadata::fromAliasAndConfiguration($alias, $resourceConfig);
         DriverProvider::get($metadata)->load($container, $metadata);
         if ($metadata->hasParameter('translation')) {
             $alias = $alias . '_translation';
             $resourceConfig = array_merge(array('driver' => $driver), $resourceConfig['translation']);
             $resources = $container->hasParameter('sylius.resources') ? $container->getParameter('sylius.resources') : array();
             $resources = array_merge($resources, array($alias => $resourceConfig));
             $container->setParameter('sylius.resources', $resources);
             $metadata = Metadata::fromAliasAndConfiguration($alias, $resourceConfig);
             DriverProvider::get($metadata)->load($container, $metadata);
         }
     }
 }
示例#5
0
 function let()
 {
     $metadata = Metadata::fromAliasAndConfiguration('sylius.shop_user', ['driver' => null]);
     $this->beConstructedWith(User::class, ['sylius'], $metadata);
 }
 /**
  * @param string $suffix
  *
  * @return Metadata
  */
 private function createMetadata($suffix)
 {
     $metadata = Metadata::fromAliasAndConfiguration(sprintf('sylius.%s', $suffix), ['driver' => 'doctrine/foobar', 'classes' => ['foo' => 'bar', 'bar' => 'foo'], 'whatever' => ['something' => ['elephants' => 'camels']]]);
     return $metadata;
 }