Sequence.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\TestFramework\Db;
  7. use Magento\Framework\App\ResourceConnection as AppResource;
  8. use Magento\Framework\DB\Ddl\Sequence as DdlSequence;
  9. /**
  10. * Class Sequence
  11. */
  12. class Sequence
  13. {
  14. /**
  15. * @var AppResource
  16. */
  17. protected $appResource;
  18. /**
  19. * @var DdlSequence
  20. */
  21. protected $ddlSequence;
  22. /**
  23. * @var array
  24. */
  25. protected $entities = [
  26. 'order',
  27. 'invoice',
  28. 'shipment',
  29. 'rma_item'
  30. ];
  31. /**
  32. * @param AppResource $appResource
  33. * @param DdlSequence $ddlSequence
  34. */
  35. public function __construct(
  36. AppResource $appResource,
  37. DdlSequence $ddlSequence
  38. ) {
  39. $this->appResource = $appResource;
  40. $this->ddlSequence = $ddlSequence;
  41. }
  42. /**
  43. * @param int $n
  44. * @return void
  45. */
  46. public function generateSequences($n = 10)
  47. {
  48. $connection = $this->appResource->getConnection();
  49. for ($i = 0; $i < $n; $i++) {
  50. foreach ($this->entities as $entityName) {
  51. $sequenceName = $this->appResource->getTableName(sprintf('sequence_%s_%s', $entityName, $i));
  52. if (!$connection->isTableExists($sequenceName)) {
  53. $connection->query($this->ddlSequence->getCreateSequenceDdl($sequenceName));
  54. }
  55. }
  56. }
  57. }
  58. }