File manager - Edit - /var/www/html/portalHomolog/app/Support/LegislacaoImportPaths.php
Back
<?php namespace App\Support; /** * Resolução da pasta e nomes dos CSVs de importação de legislação (legado PMAR). */ class LegislacaoImportPaths { public const FOLDER_CURRENT = 'Legislacao-27052026'; public const FOLDER_LEGACY = 'Legislacao'; /** @var array<string, list<string>> nome canônico => alternativas (export SQL Server) */ private const CSV_ALIASES = [ 'LEGISLACAO_AUTOR_CARGO.csv' => ['TB_PMAR_LEGISLACAO_AUTOR_CARGO.csv'], 'LEGISLACAO_AUTOR.csv' => ['TB_PMAR_LEGISLACAO_AUTOR.csv'], 'LEGISLACAO_TIPO.csv' => ['TB_PMAR_LEGISLACAO_TIPO.csv'], 'LEGISLACAO_CATEGORIA.csv' => ['TB_PMAR_LEGISLACAO_CATEGORIA.csv'], 'LEGISLACAO_CATEGORIA_ASSOCIADA.csv' => ['TB_PMAR_LEGISLACAO_CATEGORIA_ASSOCIADA.csv'], 'LEGISLACAO_ACAO.csv' => ['TB_PMAR_LEGISLACAO_ACAO.csv'], 'LEGISLACAO_RETIFICACAO.csv' => ['TB_PMAR_LEGISLACAO_RETIFICACAO.csv'], 'LEGISLACAO_PORTARIA.csv' => ['TB_PMAR_LEGISLACAO_PORTARIA.csv'], 'LEGISLACAO_PORTARIA_ACAO.csv' => ['TB_PMAR_LEGISLACAO_PORTARIA_ACAO.csv'], 'LEGISLACAO_PORTARIA_RETIFICACAO.csv' => ['TB_PMAR_LEGISLACAO_PORTARIA_RETIFICACAO.csv'], ]; public static function resolveBasePath(?string $override = null): string { if ($override !== null && $override !== '') { return self::normalizePath($override); } foreach ([self::FOLDER_CURRENT, self::FOLDER_LEGACY] as $folder) { $path = base_path('temp'.DIRECTORY_SEPARATOR.$folder); if (is_dir($path) && self::hasMinimumCsvSet($path)) { return $path; } } return base_path('temp'.DIRECTORY_SEPARATOR.self::FOLDER_CURRENT); } public static function resolveCsvPath(string $basePath, string $canonicalFilename): string { $candidates = array_merge( [$canonicalFilename], self::CSV_ALIASES[$canonicalFilename] ?? [] ); foreach ($candidates as $name) { $path = $basePath.DIRECTORY_SEPARATOR.$name; if (is_file($path)) { return $path; } } throw new \RuntimeException( 'Arquivo CSV nao encontrado: '.$basePath.DIRECTORY_SEPARATOR.$canonicalFilename ); } private static function normalizePath(string $path): string { if (str_starts_with($path, DIRECTORY_SEPARATOR) || preg_match('/^[A-Za-z]:[\\\\\\/]/', $path)) { return $path; } return base_path($path); } private static function hasMinimumCsvSet(string $basePath): bool { try { self::resolveCsvPath($basePath, 'LEGISLACAO.csv'); self::resolveCsvPath($basePath, 'LEGISLACAO_TIPO.csv'); return true; } catch (\RuntimeException) { return false; } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings