Bicycle/System/Classes/LogReader.php
Egor Isaev 858e574e60 dev
2026-08-06 15:45:09 +03:00

33 lines
1.1 KiB
PHP

<?php
/**
* @package Bicycle
* @author Egor Isaev
* @description LogReader.php
* @copyright (c) 24/06/2026
*/
namespace System\Classes;
/**
* Источник логов для просмотра. Абстракция над хранилищем: сейчас FileLogReader
* (файлы), позже возможен DbLogReader (БД) — контроллер от реализации не зависит.
*/
interface LogReader
{
/**
* Возвращает записи лога, новые сверху.
*
* @param array $filters Фильтры: date (Y-m-d), channel (action|error|all),
* level, q (подстрока), limit
* @return array<int,array{datetime:string,level:string,message:string,channel:string}>
*/
public function read(array $filters = []): array;
/**
* Возвращает доступные даты логов (Y-m-d), новые сверху — для выбора в фильтре.
*
* @return string[]
*/
public function dates(): array;
}