Added multiline parsing

This commit is contained in:
2023-05-19 11:16:50 -04:00
parent 60a7ebb231
commit 806d1be9cf
12 changed files with 440 additions and 31 deletions

View File

@ -1,7 +1,30 @@
<?php
namespace ProVM\Common\Define;
use DateTimeInterface;
interface Log
{
public function getOriginal(): string;
public function getDate(): DateTimeInterface;
public function getChannel(): string;
public function getSeverity(): string;
public function getMessage(): string;
public function getStack(): array;
public function getContext(): string;
public function getExtra(): string;
public function setOriginal(string $original): Log;
public function setDate(DateTimeInterface $dateTime): Log;
public function setChannel(string $channel): Log;
public function setSeverity(string $severity): Log;
public function setMessage(string $message): Log;
public function setStack(array $stack): Log;
public function setContext(string $context): Log;
public function setExtra(string $extra): Log;
public function parsed(): bool;
public function hasStack(): bool;
public function hasContext(): bool;
}

View File

@ -3,5 +3,32 @@ namespace ProVM\Common\Define;
interface Parser
{
public function parse(string $content): Log;
/**
* Determine if file is multiline
* @param string $filename
* @return bool
*/
public function isMultiline(string $filename): bool;
/**
* Get the total amount of errors
* @param string $filename
* @return int
*/
public function total(string $filename): int;
/**
* Parse line(s)
* @param mixed &$file_handler
* @return Log
*/
public function parse(mixed &$file_handler): Log;
/**
* Advance $offset errors
* @param mixed $file_handler
* @param int $offset
* @return void
*/
public function advance(mixed &$file_handler, int $offset): void;
}