- Some bugfixes were made and annotations were converted into attributes

This commit is contained in:
mcndave committed 2023-01-21 20:27:08 +00:00
1 parent 9c8f9903fc
commit 6ff29a576c
14 files changed
+247 -113

No files matched your search

+4 -17
View File
@@ -3,31 +3,18 @@
namespace Lean\Console\Controller;
use League\Route\Router;
use Picea\Caching\Opcache;
use Picea\FileFetcher;
use Picea\Picea;
use Picea\{ FileFetcher, Picea ,Caching\Opcache, Extension\UrlExtension };
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 Notes\Tell\Attribute\Language, Notes\Route\Attribute\Method\Route;
use function Home\View\{ _, lang, url, route, form };
/**
* @Language("lean.caching")
*/
#[Language("lean.caching")]
class Caching extends Console {
use Lib\ConsoleControllerTrait;
/**
* @Route("/caching/picea", "name" => "lean.console:caching")
*/
#[Route(route: "/caching/picea", name: "lean.console:caching")]
public function picea(ServerRequestInterface $request, array $arguments) : ResponseInterface
{
$list = [];
+3 -10
View File
@@ -4,22 +4,15 @@ namespace Lean\Console\Controller;
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 Notes\Tell\Attribute\Language, Notes\Route\Attribute\Method\Route;
use \Lean\Console\Lib;
/**
* @Language("lean.console")
*/
#[Language("lean.console")]
class Console {
use Lib\ConsoleControllerTrait;
/**
* @Route("/", "name" => "lean.console:home")
*/
#[Route(route: "/", name: "lean.console:home")]
public function home(ServerRequestInterface $request, array $arguments) : ResponseInterface
{
return $this->renderView("lean-console/page/dashboard/index", [
+3 -10
View File
@@ -4,22 +4,15 @@ namespace Lean\Console\Controller;
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 Notes\Tell\Attribute\Language, Notes\Route\Attribute\Method\Route;
use \Lean\Console\Lib;
/**
* @Language("lean.dev")
*/
#[Language("lean.dev")]
class Dev {
use Lib\ConsoleControllerTrait;
/**
* @Route("/phpinfo", "name" => "lean.dev:phpinfo")
*/
#[Route(route: "/phpinfo", name: "lean.dev:phpinfo")]
public function home(ServerRequestInterface $request, array $arguments) : ResponseInterface
{
phpinfo();
+3 -13
View File
@@ -5,27 +5,17 @@ namespace Lean\Console\Controller;
use League\Route\Router;
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 Notes\Tell\Attribute\Language, Notes\Route\Attribute\Method\Route;
use \Lean\Console\Lib;
use Picea\Extension\UrlExtension;
/**
* @Language("lean.request")
*/
#[Language("lean.request")]
class Request extends Console {
use Lib\ConsoleControllerTrait;
/**
* @Route("/request/routes", "name" => "lean.console:request.route")
* @param ServerRequestInterface $request
* @param array $arguments
* @return ResponseInterface
*/
#[Route(route: "/request/routes", name: "lean.console:request.route")]
public function routes(ServerRequestInterface $request, array $arguments) : ResponseInterface
{
$routes = $this->container->has(UrlExtension::class) ? $this->container->get(UrlExtension::class)->getRouteList(true) : false;
+20 -19
View File
@@ -7,10 +7,7 @@ use League\Route\Router;
use Picea\Ui\Method\FormHandler;
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 Notes\Tell\Attribute\Language, Notes\Route\Attribute\Method\Route;
use \Lean\Console\Lib,
\Lean\Console\Form;
@@ -21,30 +18,37 @@ use Ulmus\Annotation\Classes\Table,
Ulmus\Container\AdapterProxy;
/**
* @Language("lean.storage")
*/
#[Language("lean.storage")]
class Storage extends Console {
use Lib\ConsoleControllerTrait;
/**
* @Route("/storage/database", "name" => "lean.console:storage.database")
*/
#[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();
$form = new FormHandler($request, new Form\Database($migrations), null);
$context = $form->context;
$context = (new FormHandler($request, new Form\Storage\DatabaseMigration($migrations)))->context;
return $this->renderView("lean-console/page/storage/database", get_defined_vars());
}
/**
* @Route("/storage/session", "name" => "lean.console:storage.session")
*/
#[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\DatabaseImport($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/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");
@@ -54,10 +58,7 @@ class Storage extends Console {
return $this->renderView("lean-console/page/storage/session", get_defined_vars());
}
/**
* #Taxus('admin')
* @Route("/storage/session/content/{hash}", "name" => "lean.console:storage.session_content")
*/
#[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();
+3 -10
View File
@@ -7,24 +7,17 @@ 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 Notes\Tell\Attribute\Language, Notes\Route\Attribute\Method\Route;
use \Lean\Console\Lib;
use Picea\Extension\UrlExtension;
/**
* @Language("lean.templating")
*/
#[Language("lean.templating")] # migrated from: "lean.templating"
class Templating extends Console {
use Lib\ConsoleControllerTrait;
/**
* @Route("/templating/picea", "name" => "lean.console:templating.picea")
*/
#[Route(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;
@@ -1,6 +1,6 @@
<?php
namespace Lean\Console\Entity;
namespace Lean\Console\Entity\Mysql;
use Ulmus\Common\EntityField;
use Ulmus\Entity\Field\Datetime,
@@ -8,9 +8,9 @@ use Ulmus\Entity\Field\Datetime,
use Ulmus\EntityCollection;
use Ulmus\Migration\FieldDefinition;
/**
* @Table('name' => "columns", 'database' => "information_schema")
*/
use Ulmus\Attribute\Obj\Table;
#[Table(name: "columns", database: "information_schema")] # migrated from: 'name' => "columns", 'database' => "information_schema"
class Column extends InformationSchema\Column
{
@@ -39,6 +39,5 @@ class Column extends InformationSchema\Column
}
};
}
*/
}
+42
View File
@@ -0,0 +1,42 @@
<?php
namespace Lean\Console\Entity\Mysql;
use Ulmus\Common\EntityField;
use Ulmus\Entity\Field\Datetime,
Ulmus\Entity\Sqlite;
use Ulmus\EntityCollection;
use Ulmus\Migration\FieldDefinition;
use Ulmus\Attribute\Obj\Table;
#[Table(name: "columns", database: "information_schema")]
class Column extends Sqlite
{
public function differsFromFieldDefinition(FieldDefinition $definition) : bool
{
switch(true) {
//case $definition->
// return true;
}
return false;
}
/* public static function entityCollection(...$arguments) : EntityCollection
{
return new class(...$arguments) extends EntityCollection
{
public function getEntityData() : array
{
return [
];
}
};
}
}
+63
View File
@@ -0,0 +1,63 @@
<?php
namespace Lean\Console\Form\Storage;
use Picea\Ui\Method\{ FormInterface, FormContext, FormContextInterface };
use \Lean\Console\{ Lib, Entity };
use Picea\Compiler\Context;
use Psr\Http\Message\ServerRequestInterface;
use Ulmus\{ EntityCollection };
class DatabaseImport implements FormInterface
{
protected ? Lib\DatabaseMigrations $migration;
protected array $connections;
public function __construct(Lib\DatabaseMigrations $migration, array $connections)
{
$this->migration = $migration;
$this->connections = $connections;
}
public function initialize(FormContextInterface $context) : void
{
$context->sourceTables ??= new EntityCollection();
$context->destinationTables ??= new EntityCollection();
}
public function validate(FormContextInterface $context) : bool
{
if ($context->source) {
$filtered = array_filter($this->migration->entities, fn($e, $key) => $key::repository()->adapter->name === $context->source, ARRAY_FILTER_USE_BOTH);
$context->sourceTables->replaceWith($filtered);
}
return $context->valid();
}
public function execute(FormContextInterface $context) : void
{
if ($context->copy) {
foreach (array_filter($context->copy) as $dest => $source) {
foreach($source::repository()->yield() as $src) {
$dest::repository()->save( $src->toArray(), null, true );
}
}
}
}
public static function getContext(ServerRequestInterface $request, ? string $formName = null) : FormContextInterface
{
return new class($request, $formName) extends FormContext {
public EntityCollection $sourceTables;
public EntityCollection $destinationTables;
};
}
}
@@ -1,6 +1,6 @@
<?php
namespace Lean\Console\Form;
namespace Lean\Console\Form\Storage;
use Picea\Ui\Method\{ FormInterface, FormContext, FormContextInterface };
@@ -11,7 +11,7 @@ use Psr\Http\Message\ServerRequestInterface;
use Ulmus\Common\EntityResolver;
use \Ulmus\Entity\InformationSchema\Table;
class Database implements FormInterface
class DatabaseMigration implements FormInterface
{
protected ? Lib\DatabaseMigrations $migration;
@@ -95,9 +95,9 @@ class Database implements FormInterface
$this->initialize($context);
}
public function getContext(ServerRequestInterface $request) : FormContextInterface
public static function getContext(ServerRequestInterface $request, ? string $formName = null) : FormContextInterface
{
return new class($request) extends FormContext {
return new class($request, $formName) extends FormContext {
public array $status = [];
+9 -7
View File
@@ -6,15 +6,17 @@ use Psr\Container\ContainerInterface;
use Storage\Session;
use Notes\Tell\Attribute\Language,
Notes\Route\Attribute\Object\Route;
use Notes\Security\Attribute\{ Security, Taxus };
use Picea;
/**
* @Language("lean.route")
* @RouteParam("methods" => [ 'GET', 'POST', 'DELETE' ], "base" => "/~")
* @Security('locked' => false)
* @Taxus("dev")
* #Taxus("admin")
*/
#[Language("lean.route")]
#[Security(locked: false)]
#[Taxus("dev")]
#[\Notes\Route\Attribute\Object\Route(method: [ 'GET', 'POST', 'DELETE'] , base: "/~")]
trait ConsoleControllerTrait
{
use \Lean\ControllerTrait;