File manager - Edit - /var/www/html/portal/app/Http/Services/Cultura/ArteSacra/LogService.php
Back
<?php namespace App\Http\Services\Cultura\ArteSacra; use App\Models\User; use Illuminate\Support\Facades\File; use Illuminate\Pagination\LengthAwarePaginator; use App\Http\Resources\Cultura\ArteSacra\LogResource; class LogService { public function listar(string $modulo, ?string $busca): LengthAwarePaginator { $path = storage_path('logs/usuario.log'); if (!File::exists($path)) { return new LengthAwarePaginator([], 0, 20); } $lines = array_slice( array_reverse(explode("\n", File::get($path))), 0, 1000 ); $logs = []; foreach ($lines as $line) { if (!$line) continue; $log = LogResource::parseLinha($line); if (!$log) continue; if (!LogResource::pertenceAoModulo($log, $modulo)) { continue; } $usuario = $log['user_id'] ? User::find($log['user_id']) : null; if (!LogResource::atendeBusca($log, $busca, $usuario)) { continue; } $log['usuario'] = $usuario; $logs[] = $log; } return $this->paginate($logs, 20); } private function paginate(array $items, int $perPage): LengthAwarePaginator { $page = request()->get('page', 1); return new LengthAwarePaginator( array_slice($items, ($page - 1) * $perPage, $perPage), count($items), $perPage, $page, ['path' => url()->current(), 'query' => request()->query()] ); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings