BackupFactory.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. /**
  7. * Backup model factory
  8. *
  9. * @method \Magento\Backup\Model\Backup create($timestamp, $type)
  10. */
  11. namespace Magento\Backup\Model;
  12. /**
  13. * @api
  14. * @since 100.0.2
  15. */
  16. class BackupFactory
  17. {
  18. /**
  19. * @var \Magento\Framework\ObjectManagerInterface
  20. */
  21. protected $_objectManager;
  22. /**
  23. * @param \Magento\Framework\ObjectManagerInterface $objectManager
  24. */
  25. public function __construct(\Magento\Framework\ObjectManagerInterface $objectManager)
  26. {
  27. $this->_objectManager = $objectManager;
  28. }
  29. /**
  30. * Load backup by it's type and creation timestamp
  31. *
  32. * @param int $timestamp
  33. * @param string $type
  34. * @return \Magento\Backup\Model\Backup
  35. */
  36. public function create($timestamp, $type)
  37. {
  38. $fsCollection = $this->_objectManager->create(\Magento\Backup\Model\Fs\Collection::class);
  39. $backupInstance = $this->_objectManager->create(\Magento\Backup\Model\Backup::class);
  40. foreach ($fsCollection as $backup) {
  41. if ($backup->getTime() === (int) $timestamp && $backup->getType() === $type) {
  42. $backupInstance->setData(['id' => $backup->getId()])
  43. ->setType($backup->getType())
  44. ->setTime($backup->getTime())
  45. ->setName($backup->getName())
  46. ->setPath($backup->getPath());
  47. break;
  48. }
  49. }
  50. return $backupInstance;
  51. }
  52. }