<?php
/**
- * @copyright Copyright (C) 2021, Friendica
+ * @copyright Copyright (C) 2010-2023, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
use Friendica\Object\Log\ParsedLogLine;
/**
- * An iterator which returns `\Friendica\Objec\Log\ParsedLogLine` instances
+ * An iterator which returns `\Friendica\Object\Log\ParsedLogLine` instances
*
* Uses `\Friendica\Util\ReversedFileReader` to fetch log lines
* from newest to oldest.
private $filters = [];
/** @var string search term */
- private $search = "";
+ private $search = '';
/**
* @param string $filename File to open
* @return $this
*/
- public function open(string $filename)
+ public function open(string $filename): ParsedLogIterator
{
$this->reader->open($filename);
return $this;
* @param int $limit Max num of lines to read
* @return $this
*/
- public function withLimit(int $limit)
+ public function withLimit(int $limit): ParsedLogIterator
{
$this->limit = $limit;
return $this;
* @param array $filters filters per column
* @return $this
*/
- public function withFilters(array $filters)
+ public function withFilters(array $filters): ParsedLogIterator
{
$this->filters = $filters;
return $this;
* @param string $search string to search to filter lines
* @return $this
*/
- public function withSearch(string $search)
+ public function withSearch(string $search): ParsedLogIterator
{
$this->search = $search;
return $this;
* Check if parsed log line match filters.
* Always match if no filters are set.
*
- * @param ParsedLogLine $parsedlogline
- * @return bool
+ * @param ParsedLogLine $parsedlogline ParsedLogLine instance
+ * @return bool Wether the parse log line matches
*/
- private function filter($parsedlogline)
+ private function filter(ParsedLogLine $parsedlogline): bool
{
$match = true;
foreach ($this->filters as $filter => $filtervalue) {
switch ($filter) {
- case "level":
+ case 'level':
$match = $match && ($parsedlogline->level == strtoupper($filtervalue));
break;
- case "context":
+
+ case 'context':
$match = $match && ($parsedlogline->context == $filtervalue);
break;
}
* @param ParsedLogLine $parsedlogline
* @return bool
*/
- private function search($parsedlogline)
+ private function search(ParsedLogLine $parsedlogline): bool
{
- if ($this->search != "") {
+ if ($this->search != '') {
return strstr($parsedlogline->logline, $this->search) !== false;
}
return true;
* Read a line from reader and parse.
* Returns null if limit is reached or the reader is invalid.
*
- * @param ParsedLogLine $parsedlogline
* @return ?ParsedLogLine
*/
private function read()
/**
* Fetch next parsed log line which match with filters or search and
* set it as current iterator value.
- *
+ *
* @see Iterator::next()
* @return void
*/
- public function next()
+ public function next(): void
{
$parsed = $this->read();
/**
* Rewind the iterator to the first matching log line
- *
+ *
* @see Iterator::rewind()
* @return void
*/
- public function rewind()
+ public function rewind(): void
{
$this->value = null;
$this->reader->rewind();
/**
* Return current parsed log line number
- *
+ *
* @see Iterator::key()
* @see ReversedFileReader::key()
* @return int
*/
- public function key()
+ public function key(): int
{
return $this->reader->key();
}
/**
* Return current iterator value
- *
+ *
* @see Iterator::current()
- * @return ?ParsedLogLing
+ * @return ?ParsedLogLine
*/
- public function current()
+ public function current(): ?ParsedLogLine
{
return $this->value;
}
/**
* Checks if current iterator value is valid, that is, not null
- *
+ *
* @see Iterator::valid()
* @return bool
*/
- public function valid()
+ public function valid(): bool
{
- return ! is_null($this->value);
+ return !is_null($this->value);
}
}