JobFactory.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. /**
  3. * Copyright © 2013-2017 Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Update\Queue;
  7. /**
  8. * Magento updater application job factory.
  9. */
  10. class JobFactory
  11. {
  12. /**#@+
  13. * Job name
  14. */
  15. const NAME_UPDATE = 'update';
  16. const NAME_BACKUP = 'backup';
  17. const NAME_ROLLBACK = 'rollback';
  18. const NAME_REMOVE_BACKUPS = 'remove_backups';
  19. const NAME_UNINSTALL = 'uninstall';
  20. const NAME_MAINTENANCE_MODE = 'maintenance_mode';
  21. /**#@-*/
  22. /**
  23. * Create job instance.
  24. *
  25. * @param string $name
  26. * @param array $params
  27. * @return AbstractJob
  28. * @throws \RuntimeException
  29. */
  30. public function create($name, array $params)
  31. {
  32. switch ($name) {
  33. case self::NAME_UPDATE:
  34. return new JobUpdate($name, $params);
  35. break;
  36. case self::NAME_BACKUP:
  37. return new JobBackup($name, $params);
  38. break;
  39. case self::NAME_ROLLBACK:
  40. return new JobRollback($name, $params);
  41. break;
  42. case self::NAME_REMOVE_BACKUPS:
  43. return new JobRemoveBackups($name, $params);
  44. break;
  45. case self::NAME_MAINTENANCE_MODE:
  46. return new JobMaintenanceMode($name, $params);
  47. break;
  48. case self::NAME_UNINSTALL:
  49. return new JobComponentUninstall($name, $params);
  50. break;
  51. default:
  52. throw new \RuntimeException(sprintf('"%s" job is not supported.', $name));
  53. }
  54. }
  55. }