for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace PhpCfdi\SatCatalogosPopulate\Importers;
use PhpCfdi\SatCatalogosPopulate\Database\Repository;
use PhpCfdi\SatCatalogosPopulate\ImporterInterface;
use Psr\Log\LoggerInterface;
use RuntimeException;
class SourcesImporter implements ImporterInterface
{
public function import(string $source, Repository $repository, LoggerInterface $logger): void
$importers = [
'CFDI' => ['source' => $source . '/catCFDI.xls', 'importer' => new CfdiCatalogs()],
'Nóminas' => ['source' => $source . '/catNomina.xls', 'importer' => new NominaCatalogs()],
'CCE' => ['source' => $source, 'importer' => new CceCatalogs()],
'Pagos' => ['source' => $source . '/catPagos.xls', 'importer' => new RepCatalogs()],
];
foreach ($importers as $name => $info) {
$sourceFile = $info['source'];
if (! file_exists($sourceFile)) {
throw new RuntimeException("Se esperaba encontrar $sourceFile pero no existe");
}
/** @var ImporterInterface $importer */
$importer = $info['importer'];
$logger->info("Importando $name desde $sourceFile...");
$importer->import($sourceFile, $repository, $logger);