RegionSource.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\InventoryAdminUi\Model\OptionSource;
  8. use Magento\Directory\Model\ResourceModel\Region\CollectionFactory;
  9. use Magento\Framework\Data\OptionSourceInterface;
  10. /**
  11. * Provide option values for UI
  12. *
  13. * @api
  14. */
  15. class RegionSource implements OptionSourceInterface
  16. {
  17. /**
  18. * Region collection factory
  19. *
  20. * @var CollectionFactory
  21. */
  22. private $regionCollectionFactory;
  23. /**
  24. * Source data
  25. *
  26. * @var null|array
  27. */
  28. private $sourceData;
  29. /**
  30. * @param CollectionFactory $regionCollectionFactory
  31. */
  32. public function __construct(CollectionFactory $regionCollectionFactory)
  33. {
  34. $this->regionCollectionFactory = $regionCollectionFactory;
  35. }
  36. /**
  37. * {@inheritdoc}
  38. */
  39. public function toOptionArray()
  40. {
  41. if (null === $this->sourceData) {
  42. $regionCollection = $this->regionCollectionFactory->create();
  43. $this->sourceData = $regionCollection->toOptionArray();
  44. }
  45. return $this->sourceData;
  46. }
  47. }