AbstractJob.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. use Magento\Update\Status;
  8. use Magento\Update\MaintenanceMode;
  9. /**
  10. * Magento updater application abstract job.
  11. */
  12. abstract class AbstractJob
  13. {
  14. /**
  15. * @var string
  16. */
  17. protected $name;
  18. /**
  19. * @var array
  20. */
  21. protected $params;
  22. /**
  23. * @var Status
  24. */
  25. protected $status;
  26. /**
  27. * @var MaintenanceMode
  28. */
  29. protected $maintenanceMode;
  30. /**
  31. * Initialize job instance.
  32. *
  33. * @param string $name
  34. * @param array $params
  35. * @param Status|null $status
  36. * @param MaintenanceMode|null $maintenanceMode
  37. */
  38. public function __construct($name, array $params, Status $status = null, MaintenanceMode $maintenanceMode = null)
  39. {
  40. $this->name = $name;
  41. $this->params = $params;
  42. $this->status = $status ? $status : new Status();
  43. $this->maintenanceMode = $maintenanceMode ? $maintenanceMode : new MaintenanceMode();
  44. }
  45. /**
  46. * Get job name.
  47. *
  48. * @return string
  49. */
  50. public function getName()
  51. {
  52. return $this->name;
  53. }
  54. /**
  55. * Get string representation of a job.
  56. *
  57. * @return string
  58. */
  59. public function __toString()
  60. {
  61. return $this->name . ' ' . json_encode($this->params, JSON_UNESCAPED_SLASHES );
  62. }
  63. /**
  64. * Execute job.
  65. *
  66. * @return $this
  67. * @throws \RuntimeException
  68. */
  69. abstract public function execute();
  70. }