/**
  * @param AbstractHydrator   $hydrator
  * @param ContainerInterface $container
  * @param array              $config
  * @param ObjectManager      $objectManager
  *
  * @throws ServiceNotCreatedException
  */
 public function configureHydratorNamingStrategy($hydrator, ContainerInterface $container, $config, $objectManager)
 {
     if (!$hydrator instanceof NamingStrategyEnabledInterface || !isset($config['naming_strategy'])) {
         return;
     }
     $namingStrategyKey = $config['naming_strategy'];
     if (!$container->has($namingStrategyKey)) {
         throw new ServiceNotCreatedException(sprintf('Invalid naming strategy %s.', $namingStrategyKey));
     }
     $namingStrategy = $container->get($namingStrategyKey);
     if (!$namingStrategy instanceof NamingStrategyInterface) {
         throw new ServiceNotCreatedException(sprintf('Invalid naming strategy class %s', get_class($namingStrategy)));
     }
     // Attach object manager:
     if ($namingStrategy instanceof ObjectManagerAwareInterface) {
         $namingStrategy->setObjectManager($objectManager);
     }
     $hydrator->setNamingStrategy($namingStrategy);
 }
Ejemplo n.º 2
0
 /**
  * {@inheritDoc}
  */
 public function setNamingStrategy(NamingStrategy\NamingStrategyInterface $strategy)
 {
     $this->resetCaches();
     return parent::setNamingStrategy($strategy);
 }