App src code
This commit is contained in:
16
app/common/Controller/Base.php
Normal file
16
app/common/Controller/Base.php
Normal 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'));
|
||||
}
|
||||
}
|
25
app/common/Controller/Logs.php
Normal file
25
app/common/Controller/Logs.php
Normal 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'));
|
||||
}
|
||||
}
|
44
app/common/Service/Logs.php
Normal file
44
app/common/Service/Logs.php
Normal 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);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user