ObjectHydrator.php 1008 B

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. namespace Gedmo\Translatable\Hydrator\ORM;
  3. use Gedmo\Translatable\Query\TreeWalker\TranslationWalker;
  4. use Doctrine\ORM\Internal\Hydration\ObjectHydrator as BaseObjectHydrator;
  5. /**
  6. * If query uses TranslationQueryWalker and is hydrating
  7. * objects - when it requires this custom object hydrator
  8. * in order to skip onLoad event from triggering retranslation
  9. * of the fields
  10. *
  11. * @author Gediminas Morkevicius <gediminas.morkevicius@gmail.com>
  12. * @package Gedmo.Translatable.Hydrator.ORM
  13. * @subpackage ObjectHydrator
  14. * @link http://www.gediminasm.org
  15. * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
  16. */
  17. class ObjectHydrator extends BaseObjectHydrator
  18. {
  19. /**
  20. * {@inheritdoc}
  21. */
  22. protected function _hydrateAll()
  23. {
  24. $listener = $this->_hints[TranslationWalker::HINT_TRANSLATION_LISTENER];
  25. $listener->setSkipOnLoad(true);
  26. $result = parent::_hydrateAll();
  27. $listener->setSkipOnLoad(false);
  28. return $result;
  29. }
  30. }