parent
68b136d3a1
commit
159e0d36d5
@ -0,0 +1,27 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace App\Enums; |
||||||
|
|
||||||
|
use App\Services\Chunkers\JsonChunker; |
||||||
|
use App\Services\Converters\JsonToDatabaseConverter; |
||||||
|
|
||||||
|
enum FileFormatEnum: string |
||||||
|
{ |
||||||
|
case JSON = 'json'; |
||||||
|
|
||||||
|
public function chunker($path): \Generator |
||||||
|
{ |
||||||
|
$chunker = match ($this) { |
||||||
|
self::JSON => JsonChunker::class |
||||||
|
}; |
||||||
|
|
||||||
|
return $chunker->handle($path); |
||||||
|
} |
||||||
|
|
||||||
|
public function converter() |
||||||
|
{ |
||||||
|
return match($this){ |
||||||
|
self::JSON => new JsonToDatabaseConverter() |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,8 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace App\Interfaces; |
||||||
|
|
||||||
|
interface ChunkerInterface |
||||||
|
{ |
||||||
|
public function handle(): \Generator; |
||||||
|
} |
||||||
@ -0,0 +1,8 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace App\Interfaces; |
||||||
|
|
||||||
|
interface ConverterInterface |
||||||
|
{ |
||||||
|
public function handle(): void; |
||||||
|
} |
||||||
@ -0,0 +1,13 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace App\Services\Chunkers; |
||||||
|
|
||||||
|
use App\Interfaces\ChunkerInterface; |
||||||
|
|
||||||
|
class JsonChunker implements ChunkerInterface |
||||||
|
{ |
||||||
|
public function handle(): \Generator |
||||||
|
{ |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,10 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace App\Services\Converters; |
||||||
|
|
||||||
|
use App\Interfaces\ConverterInterface; |
||||||
|
|
||||||
|
class JsonToDatabaseConverter implements ConverterInterface |
||||||
|
{ |
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue