App src code

This commit is contained in:
2023-02-14 17:27:01 -03:00
parent ab6c7fa9dd
commit 5eec0d93b0
26 changed files with 525 additions and 0 deletions

View File

@ -0,0 +1,16 @@
<?php
namespace ProVM\Common\Controller;
use ProVM\Common\Service\Logs;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Slim\Views\Blade as View;
class Base
{
public function __invoke(ServerRequestInterface $request, ResponseInterface $response, View $view, Logs $service): ResponseInterface
{
$files = $service->getFiles();
return $view->render($response, 'home', compact('files'));
}
}

View File

@ -0,0 +1,25 @@
<?php
namespace ProVM\Common\Controller;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Slim\Views\Blade as View;
use ProVM\Common\Service\Logs as Service;
use ProVM\Logview\Log;
class Logs
{
public function get(ServerRequestInterface $request, ResponseInterface $response, View $view, Service $service, string $log_file): ResponseInterface
{
$log = $service->get($log_file);
$levels = [];
foreach (Log::LEVELS as $level) {
$levels[strtolower($level)] = (object) [
'text' => Log::COLORS[$level],
'background' => Log::BACKGROUNDS[$level],
];
}
return $view->render($response, 'logs.show', compact('log', 'levels'));
}
}

View File

@ -0,0 +1,44 @@
<?php
namespace ProVM\Common\Service;
use ProVM\Logview\Log\File;
class Logs
{
public function __construct(string $folder)
{
$this
->setFolder($folder);
}
protected string $folder;
public function getFolder(): string
{
return $this->folder;
}
public function setFolder(string $folder): Logs
{
$this->folder = $folder;
return $this;
}
public function getFiles(): array
{
$files = new \FilesystemIterator($this->getFolder());
$output = [];
foreach ($files as $file) {
if ($file->isDir()) {
continue;
}
$output []= $file;
}
return $output;
}
public function get(string $log_file): File
{
$content = \Safe\file_get_contents(implode(DIRECTORY_SEPARATOR, [$this->getFolder(), $log_file]));
return (new File())->setFilename($log_file)->setContent($content);
}
}