CacheManager.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Translation\Model\Inline;
  7. /**
  8. * To manage translations cache
  9. */
  10. class CacheManager
  11. {
  12. /**
  13. * @var \Magento\Framework\Event\ManagerInterface
  14. */
  15. protected $eventManager;
  16. /**
  17. * @var \Magento\Framework\Translate\ResourceInterface
  18. */
  19. protected $translateResource;
  20. /**
  21. * @var \Magento\Framework\Locale\ResolverInterface
  22. */
  23. protected $localeResolver;
  24. /**
  25. * @var \Magento\Translation\Model\FileManager
  26. */
  27. protected $fileManager;
  28. /**
  29. * Initialize dependencies
  30. *
  31. * @param \Magento\Framework\Event\ManagerInterface $eventManager
  32. * @param \Magento\Framework\Translate\ResourceInterface $translateResource
  33. * @param \Magento\Framework\Locale\ResolverInterface $localeResolver
  34. * @param \Magento\Translation\Model\FileManager $fileManager
  35. */
  36. public function __construct(
  37. \Magento\Framework\Event\ManagerInterface $eventManager,
  38. \Magento\Framework\Translate\ResourceInterface $translateResource,
  39. \Magento\Framework\Locale\ResolverInterface $localeResolver,
  40. \Magento\Translation\Model\FileManager $fileManager
  41. ) {
  42. $this->eventManager = $eventManager;
  43. $this->translateResource = $translateResource;
  44. $this->localeResolver = $localeResolver;
  45. $this->fileManager = $fileManager;
  46. }
  47. /**
  48. * Clears cache and updates translations file
  49. *
  50. * @return array
  51. */
  52. public function updateAndGetTranslations()
  53. {
  54. $this->eventManager->dispatch('adminhtml_cache_flush_system');
  55. $translations = $this->translateResource->getTranslationArray(null, $this->localeResolver->getLocale());
  56. $this->fileManager->updateTranslationFileContent(json_encode($translations));
  57. return $translations;
  58. }
  59. }