Skip to content

Instantly share code, notes, and snippets.

@koyablue
Last active April 2, 2021 09:44
Show Gist options
  • Save koyablue/e45b783c9bbdee2bee91937228b023a5 to your computer and use it in GitHub Desktop.
Save koyablue/e45b783c9bbdee2bee91937228b023a5 to your computer and use it in GitHub Desktop.
<?php
namespace App\Services\FileImport;
use App\Services\FileImport\Importer\DeliveryJoblistFileImporter;
use App\Services\FileImport\Importer\OfficeWorkJoblistFileImporter;
use App\Services\FileImport\Importer\RestaurantJoblistFileImporter;
use App\Services\FileImport\Interface\FileImporterInterface;
class ImporterFactory
{
private static array $importers = [
OfficeWorkJoblistFileImporter::class,
RestaurantJoblistFileImporter::class,
DeliveryJoblistFileImporter::class
];
/**
* createImporter
*
* @param mixed $fileType
* @return FileImporterInterface
*/
public static function createImporter(int $fileType): FileImporterInterface
{
foreach (self::$importers as $importer) {
if ($importer::type() === $fileType) {
return new $importer();
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment