87 lines
3.7 KiB
PHP
87 lines
3.7 KiB
PHP
<?php
|
|
|
|
namespace Lean\Console\Controller;
|
|
|
|
use League\Route\Router;
|
|
|
|
use Picea\Ui\Method\FormHandler;
|
|
use Psr\Http\Message\{ ResponseInterface, ServerRequestInterface };
|
|
|
|
use Notes\Tell\Attribute\Language, Notes\Route\Attribute\Method\Route;
|
|
|
|
use \Lean\Console\Lib,
|
|
\Lean\Console\Form;
|
|
|
|
use Picea\Extension\UrlExtension;
|
|
|
|
use Ulmus\Annotation\Classes\Table,
|
|
Ulmus\Container\AdapterProxy;
|
|
|
|
class Storage extends Console {
|
|
use Lib\ConsoleControllerTrait;
|
|
|
|
#[Route(route: "/storage/database", name: "lean.console:storage.database")]
|
|
public function database(ServerRequestInterface $request, array $arguments) : ResponseInterface
|
|
{
|
|
$connections = $this->container->has(AdapterProxy::class) ? $this->container->get(AdapterProxy::class)->connections : false;
|
|
$migrations = $this->container->has(Lib\DatabaseMigrations::class) ? $this->container->get(Lib\DatabaseMigrations::class) : false;
|
|
$migrations->getEntities();
|
|
|
|
$context = (new FormHandler($request, new Form\Storage\Database\Migrate($migrations), $this->pushContext(new Lib\FormContext($request, "database.migrate"))))->context;
|
|
|
|
return $this->renderView("lean-console/page/storage/database", get_defined_vars());
|
|
}
|
|
|
|
#[Route(route: "/storage/database/import", name: "lean.console:storage.database_import")]
|
|
public function database_import(ServerRequestInterface $request, array $arguments) : ResponseInterface
|
|
{
|
|
$connections = $this->container->has(AdapterProxy::class) ? $this->container->get(AdapterProxy::class)->connections : false;
|
|
$migrations = $this->container->has(Lib\DatabaseMigrations::class) ? $this->container->get(Lib\DatabaseMigrations::class) : false;
|
|
$migrations->getEntities();
|
|
|
|
$form = new Form\Storage\Database\Import($migrations, $connections);
|
|
|
|
$context = (new FormHandler($request, $form, $this->pushContext(new Lib\FormContext($request, "database.import"))))->context;
|
|
|
|
return $this->renderView("lean-console/page/storage/database_import", get_defined_vars());
|
|
}
|
|
|
|
#[Route(route: "/storage/database/insert", name: "lean.console:storage.database_insert")]
|
|
public function insert(ServerRequestInterface $request, array $arguments) : ResponseInterface
|
|
{
|
|
$class = $request->getQueryParams()['source'] ?? $request->getParsedBody()['source'];
|
|
|
|
$context = (new FormHandler($request, new Form\Storage\Database\Insert(new $class())))->context;
|
|
|
|
return $this->renderView("lean-console/page/storage/database_insert", get_defined_vars());
|
|
}
|
|
|
|
#[Route(route: "/storage/session", name: "lean.console:storage.session")] # migrated from: "/storage/session", "name" => "lean.console:storage.session"
|
|
public function session(ServerRequestInterface $request, array $arguments) : ResponseInterface
|
|
{
|
|
$path = ini_get("session.save_path");
|
|
|
|
$sessions = preg_grep("/^sess_/", scandir($path));
|
|
|
|
return $this->renderView("lean-console/page/storage/session", get_defined_vars());
|
|
}
|
|
|
|
#[Route(route: "/storage/session/content/{hash}", name: "lean.console:storage.session_content")] # migrated from: "/storage/session/content/{hash}", "name" => "lean.console:storage.session_content"
|
|
public function sessionContent(ServerRequestInterface $request, array $arguments) : ResponseInterface
|
|
{
|
|
$sess = session_encode();
|
|
|
|
session_decode(file_get_contents($this->sessionPath() . $arguments['hash']));
|
|
|
|
$data = array_combine(array_keys($_SESSION), array_values($_SESSION));
|
|
|
|
session_decode($sess);
|
|
|
|
return $this->renderJson($data);
|
|
}
|
|
|
|
protected function sessionPath() : string
|
|
{
|
|
return rtrim(ini_get("session.save_path"), DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
|
|
}
|
|
} |