QueueImportWithoutJobChaining.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace Maatwebsite\Excel\Tests\Data\Stubs;
  3. use Maatwebsite\Excel\Concerns\Importable;
  4. use Maatwebsite\Excel\Concerns\ShouldQueueWithoutChain;
  5. use Maatwebsite\Excel\Concerns\ToModel;
  6. use Maatwebsite\Excel\Concerns\WithChunkReading;
  7. use Maatwebsite\Excel\Concerns\WithEvents;
  8. use Maatwebsite\Excel\Events\AfterImport;
  9. use Maatwebsite\Excel\Events\BeforeImport;
  10. use Maatwebsite\Excel\Reader;
  11. use Maatwebsite\Excel\Tests\Data\Stubs\Database\User;
  12. use PHPUnit\Framework\Assert;
  13. class QueueImportWithoutJobChaining implements ToModel, WithChunkReading, WithEvents, ShouldQueueWithoutChain
  14. {
  15. use Importable;
  16. public $queue;
  17. public $before = false;
  18. public $after = false;
  19. /**
  20. * @param array $row
  21. * @return Model|null
  22. */
  23. public function model(array $row)
  24. {
  25. return new User([
  26. 'name' => $row[0],
  27. 'email' => $row[1],
  28. 'password' => 'secret',
  29. ]);
  30. }
  31. /**
  32. * @return int
  33. */
  34. public function chunkSize(): int
  35. {
  36. return 1;
  37. }
  38. /**
  39. * @return array
  40. */
  41. public function registerEvents(): array
  42. {
  43. return [
  44. BeforeImport::class => function (BeforeImport $event) {
  45. Assert::assertInstanceOf(Reader::class, $event->reader);
  46. $this->before = true;
  47. },
  48. AfterImport::class => function (AfterImport $event) {
  49. Assert::assertInstanceOf(Reader::class, $event->reader);
  50. $this->after = true;
  51. },
  52. ];
  53. }
  54. }