/** * @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); }
/** * {@inheritDoc} */ public function setNamingStrategy(NamingStrategy\NamingStrategyInterface $strategy) { $this->resetCaches(); return parent::setNamingStrategy($strategy); }