File manager - Edit - /var/www/html/portal/app/Http/Services/DefesaCivil/TabuaMareService.php
Back
<?php namespace App\Http\Services\DefesaCivil; use App\Models\DefesaCivil\TabuaMare; use Carbon\Carbon; use Illuminate\Support\Facades\Storage; class TabuaMareService { public function listAvailableYears(): array { // JSONs de tábuas já processadas return collect(Storage::files('public/tabuas-processadas')) ->filter(fn ($file) => preg_match('/tabua_(\d{4})\.json$/', $file)) ->map(fn ($file) => (int) preg_replace('/[^0-9]/', '', basename($file, '.json'))) ->sortDesc() ->values() ->toArray(); } public function storeJson(int $ano, array $tabua): void { // Salva JSON das tábuas processadas Storage::put("public/tabuas-processadas/tabua_{$ano}.json", json_encode($tabua, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)); } public function findByYear(int $ano): ?TabuaMare { return TabuaMare::where('ano', $ano)->first(); } public function getTabuaPorData(string $data): ?array { $carbon = Carbon::parse($data); $ano = $carbon->year; $dia = $carbon->format('Y-m-d'); // Primeiro tenta na nova pasta de tábuas processadas $arquivo = storage_path("app/public/tabuas-processadas/tabua_{$ano}.json"); // Backward‑compat: se não existir ainda (anos antigos), cai no caminho antigo if (! file_exists($arquivo)) { $arquivoAntigo = storage_path("app/public/tabuas-de-mare/tabua_{$ano}.json"); if (file_exists($arquivoAntigo)) { $arquivo = $arquivoAntigo; } } if (!file_exists($arquivo)) { return null; } $dados = json_decode(file_get_contents($arquivo), true); return $dados[$dia] ?? null; } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings