lean-console/src/Controller/Debugging.php

44 lines
1.5 KiB
PHP

<?php
namespace Lean\Console\Controller;
use Picea\{Ui\Method\FormHandler};
use Lean\File;
use Psr\Http\Message\{ ResponseInterface, ServerRequestInterface };
use Lean\Console\{ Form, Lib };
use Notes\Route\Attribute\Method\Route;
class Debugging extends Console {
use Lib\ConsoleControllerTrait;
#[Route(route: "/debugging/logs", name: "lean.console:debugging-logs")]
public function logs(ServerRequestInterface $request, array $arguments) : ResponseInterface
{
$list = [];
# new FormHandler($request, new Form\Debugging\Logs(), $this->pushContext(new Lib\FormContext($request, "debugging.logs")));
$path = getenv('LOGS_PATH');
$files = array_map(fn($e) => basename($e), glob("$path/*"));
$default = basename(ini_get('error_log'));
$open = File::sanitizeFilePath($request->getQueryParams()['logfile'] ?? end($files));
$content = File::tail($path . DIRECTORY_SEPARATOR . $open, $request->getQueryParams()['line'] ?? 100);
return $this->renderView("lean-console/page/debugging/logs", get_defined_vars());
}
#[Route(route: "/debugging/phpinfo", name: "lean.console:debugging-phpinfo")]
public function phpinfo(ServerRequestInterface $request, array $arguments) : ResponseInterface
{
ob_start() ;
phpinfo() ;
$phpinfo = ob_get_contents() ;
ob_end_clean() ;
return $this->renderView("lean-console/page/debugging/phpinfo", get_defined_vars());
}
}