- Work done on the console to have at least some working functionality from every parts

This commit is contained in:
mcndave committed 2022-11-29 19:29:15 +00:00
1 parent e78492d398
commit 24e5490c71
18 files changed
+352 -27

No files matched your search

+41
View File
@@ -0,0 +1,41 @@
<?php
namespace Lean\Console\Controller;
use League\Route\Router;
use Picea\Caching\Opcache;
use Picea\FileFetcher;
use Picea\Picea;
use Psr\Http\Message\{ ResponseInterface, ServerRequestInterface };
use Notes\Route\Annotation\Object\Route as RouteParam,
Notes\Route\Annotation\Method\Route,
Notes\Security\Annotation\Security,
Notes\Tell\Annotation\Language;
use Lean\Console\{ Form, Lib };
use Picea\Extension\UrlExtension;
use function Home\View\{ _, lang, url, route, form };
/**
* @Language("lean.caching")
*/
class Caching extends Console {
use Lib\ConsoleControllerTrait;
/**
* @Route("/caching/picea", "name" => "lean.console:caching")
*/
public function picea(ServerRequestInterface $request, array $arguments) : ResponseInterface
{
$list = [];
if ( isset($this->picea) ) {
form(new Form\Caching\Picea($this->picea, $list), $this->pushContext(new Lib\FormContext($request, "caching.picea")));
}
return $this->renderView("lean-console/page/caching/picea", get_defined_vars());
}
}
+35 -4
View File
@@ -28,10 +28,7 @@ class Storage extends Console {
use Lib\ConsoleControllerTrait;
/**
* @Route("/storage/database", "name" => "lean.console:request.route")
* @param ServerRequestInterface $request
* @param array $arguments
* @return ResponseInterface
* @Route("/storage/database", "name" => "lean.console:storage.database")
*/
public function database(ServerRequestInterface $request, array $arguments) : ResponseInterface
{
@@ -45,6 +42,40 @@ class Storage extends Console {
return $this->renderView("lean-console/page/storage/database", get_defined_vars());
}
/**
* @Route("/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());
}
/**
* #Taxus('admin')
* @Route("/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;
}
public function createTable() : void
{
foreach($migrations->entities as $table) {
+37
View File
@@ -0,0 +1,37 @@
<?php
namespace Lean\Console\Controller;
use League\Route\Router;
use Picea\FileFetcher;
use Picea\Picea;
use Psr\Http\Message\{ ResponseInterface, ServerRequestInterface };
use Notes\Route\Annotation\Object\Route as RouteParam,
Notes\Route\Annotation\Method\Route,
Notes\Security\Annotation\Security,
Notes\Tell\Annotation\Language;
use \Lean\Console\Lib;
use Picea\Extension\UrlExtension;
/**
* @Language("lean.templating")
*/
class Templating extends Console {
use Lib\ConsoleControllerTrait;
/**
* @Route("/templating/picea", "name" => "lean.console:templating.picea")
*/
public function picea(ServerRequestInterface $request, array $arguments) : ResponseInterface
{
$picea = $this->container->has(Picea::class) ? $this->container->get(Picea::class) : false;
$list = $picea->fileFetcher->getFileList();
return $this->renderView("lean-console/page/templating/picea", get_defined_vars());
}
}
+67
View File
@@ -0,0 +1,67 @@
<?php
namespace Lean\Console\Form\Caching;
use Picea\Ui\Method\{ FormInterface, FormContext, FormContextInterface };
use \Lean\Console\Lib;
use Picea\{Caching\Opcache, Compiler\Context };
use Psr\Http\Message\ServerRequestInterface;
use Ulmus\Common\EntityResolver;
use \Ulmus\Entity\InformationSchema\Table;
use RecursiveIteratorIterator, RecursiveDirectoryIterator;
class Picea implements FormInterface
{
public \Picea\Picea $picea;
public array $folders;
public function __construct(\Picea\Picea $picea, array &$folders)
{
$this->folders = &$folders;
$this->picea = $picea;
}
public function initialize(FormContextInterface $context) : void
{
if ($this->picea->cache instanceof Opcache) {
$path = $this->picea->cache->cachePath() . "/";
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST, RecursiveIteratorIterator::CATCH_GET_CHILD);
foreach ($iterator as $file) {
if ($file->isFile() && in_array($file->getExtension(), [ 'php' ])) {
$this->folders[$path][] = $file;
}
}
}
}
public function validate(FormContextInterface $context) : bool
{
return $context->valid();
}
public function execute(FormContextInterface $context) : void
{
$deleted = $failed = 0;
foreach($this->folders as $path => $files) {
foreach($files as $file)
{
unlink($file->getPathname()) ? $deleted++ : $failed++;
}
}
if ($deleted) {
# $context->pushMessage();
}
if ($failed) {
# $context->pushMessage();
}
}
}
+2 -1
View File
@@ -34,7 +34,6 @@ class Database implements FormInterface
continue;
}
#<<<<<<< HEAD
$tableEntity = $adapter->schemaTable($databaseName, $tableName);
if ( $tableEntity ) {
@@ -59,6 +58,8 @@ class Database implements FormInterface
# }
#>>>>>>> 7194a33bec884d745e838c8ac2693b353e95a3ce
}
$alter =false;
if ( $alter ) {
$context->status[$entity] = [
+2 -2
View File
@@ -11,8 +11,8 @@ use Picea;
/**
* @Language("lean.route")
* @RouteParam("methods" => [ 'GET', 'POST', 'DELETE' ], "base" => "/~")
* @Security('locked' => true)
* @Taxus("admin")
* @Security('locked' => false)
* @Taxus("dev")
*/
trait ConsoleControllerTrait
{
+5
View File
@@ -0,0 +1,5 @@
<?php
namespace Lean\Console\Lib;
class FormContext extends \Picea\Ui\Method\FormContext { }
+9
View File
@@ -0,0 +1,9 @@
<?php
class Triggers
{
public function onUpdateCurrentTimestamp(string $table) : string
{
}
}