diff --git a/meta/i18n/fr/lean.debugging.json b/meta/i18n/fr/lean.debugging.json new file mode 100644 index 0000000..168b549 --- /dev/null +++ b/meta/i18n/fr/lean.debugging.json @@ -0,0 +1,7 @@ +{ + "title" : "Debugging -- LEAN", + "page-title": "Déboguage", + "breadcrumb" : { + "index" : "Negundo" + } +} diff --git a/meta/i18n/fr/lean.nav.json b/meta/i18n/fr/lean.nav.json index 36650ef..860bae2 100644 --- a/meta/i18n/fr/lean.nav.json +++ b/meta/i18n/fr/lean.nav.json @@ -20,6 +20,11 @@ "label": "Caching" }, + "debugging": { + "label": "Déboguage", + "logs": "Logs" + }, + "request": { "label": "Request", "routes": "Routes" diff --git a/src/Controller/Caching.php b/src/Controller/Caching.php index 097ad31..51b37a2 100644 --- a/src/Controller/Caching.php +++ b/src/Controller/Caching.php @@ -8,7 +8,6 @@ use Psr\Http\Message\{ ResponseInterface, ServerRequestInterface }; use Lean\Console\{ Form, Lib }; use Notes\Tell\Attribute\Language, Notes\Route\Attribute\Method\Route; -#[Language("lean.caching")] class Caching extends Console { use Lib\ConsoleControllerTrait; diff --git a/src/Controller/Console.php b/src/Controller/Console.php index 21aeb18..1e4b8b4 100644 --- a/src/Controller/Console.php +++ b/src/Controller/Console.php @@ -9,7 +9,6 @@ use Notes\Tell\Attribute\Language, Notes\Route\Attribute\Method\Route; use \Lean\Console\{ Lib, Form }; -#[Language("lean.console")] class Console { use Lib\ConsoleControllerTrait; diff --git a/src/Controller/Debugging.php b/src/Controller/Debugging.php new file mode 100644 index 0000000..6d2799e --- /dev/null +++ b/src/Controller/Debugging.php @@ -0,0 +1,34 @@ +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 = end($files); + + $content = File::tail($path . DIRECTORY_SEPARATOR . $open, 100); + + return $this->renderView("lean-console/page/debugging/logs", get_defined_vars()); + } +} \ No newline at end of file diff --git a/src/Controller/Dev.php b/src/Controller/Dev.php index 4f50188..c147102 100644 --- a/src/Controller/Dev.php +++ b/src/Controller/Dev.php @@ -8,7 +8,6 @@ use Notes\Tell\Attribute\Language, Notes\Route\Attribute\Method\Route; use \Lean\Console\Lib; -#[Language("lean.dev")] class Dev { use Lib\ConsoleControllerTrait; diff --git a/src/Controller/Request.php b/src/Controller/Request.php index 407b485..46e8d73 100644 --- a/src/Controller/Request.php +++ b/src/Controller/Request.php @@ -11,7 +11,6 @@ use \Lean\Console\Lib; use Picea\Extension\UrlExtension; -#[Language("lean.request")] class Request extends Console { use Lib\ConsoleControllerTrait; diff --git a/src/Controller/Storage.php b/src/Controller/Storage.php index 4d1c92f..ceaa14f 100644 --- a/src/Controller/Storage.php +++ b/src/Controller/Storage.php @@ -17,8 +17,6 @@ use Picea\Extension\UrlExtension; use Ulmus\Annotation\Classes\Table, Ulmus\Container\AdapterProxy; - -#[Language("lean.storage")] class Storage extends Console { use Lib\ConsoleControllerTrait; diff --git a/src/Controller/Templating.php b/src/Controller/Templating.php index 750868c..37ea023 100644 --- a/src/Controller/Templating.php +++ b/src/Controller/Templating.php @@ -13,7 +13,6 @@ use \Lean\Console\Lib; use Picea\Extension\UrlExtension; -#[Language("lean.templating")] # migrated from: "lean.templating" class Templating extends Console { use Lib\ConsoleControllerTrait; diff --git a/src/Form/Debugging/Logs.php b/src/Form/Debugging/Logs.php new file mode 100644 index 0000000..affb955 --- /dev/null +++ b/src/Form/Debugging/Logs.php @@ -0,0 +1,34 @@ +valid(); + } + + public function execute(FormContextInterface $context) : void + { + } +} diff --git a/src/Form/Storage/DatabaseMigration.php b/src/Form/Storage/DatabaseMigration.php index 255c84e..7a128a0 100644 --- a/src/Form/Storage/DatabaseMigration.php +++ b/src/Form/Storage/DatabaseMigration.php @@ -71,11 +71,20 @@ class DatabaseMigration implements FormInterface $alter = $this->definition[$entity]['columns']->filterAlter(); if ( $alter->count() ) { - $tableDefinition->modifier = new Lib\Database\Modifier( + if ( $adapter->splitAlterQuery() ) { + $query = $alter->map(fn(Lib\Database\Definition $map) => $entity::repository() + ->alterSqlQuery([$map->toArray()]) + ->getSqlQuery(true)); + } + else { + $query = $entity::repository() + ->alterSqlQuery($alter->map(fn(Lib\Database\Definition $map) => $map->toArray())) + ->getSqlQuery(true); + } + + $tableDefinition->modifier = new Lib\Database\Modifier( type: Lib\Database\ModifierTypeEnum::Alter, - query: $entity::repository() - ->alterSqlQuery($alter->map(fn(Lib\Database\Definition $e) => $e->toArray())) - ->getSqlQuery(true), + query: $query, ); } } @@ -110,10 +119,19 @@ class DatabaseMigration implements FormInterface $alter = $context->alterAll ? explode(',', $context->alterAll) : [ $context->alter ]; foreach(array_filter($alter) as $entity) { - - if ($this->definition[$entity]['table']->modifier->type === Lib\Database\ModifierTypeEnum::Alter) { - $entity::repository()->alterTable($this->definition[$entity]['columns']->filterAlter ()->map( fn($e) => $e->toArray() )); + $adapter = $entity::resolveEntity()->sqlAdapter()->adapter(); + + $def = $this->definition[$entity]['columns']->filterAlter(); + + if ( $adapter->splitAlterQuery() ) { + $def->walk(fn(Lib\Database\Definition $definition) => + $entity::repository()->alterTable([ $definition->toArray() ]) + ); + } + else { + $entity::repository()->alterTable($def->map( fn(Lib\Database\Definition $e) => $e->toArray() )); + } } } diff --git a/src/Lib/Database/Definition.php b/src/Lib/Database/Definition.php index 6622fa2..b665463 100644 --- a/src/Lib/Database/Definition.php +++ b/src/Lib/Database/Definition.php @@ -5,12 +5,12 @@ namespace Lean\Console\Lib\Database; class Definition { public function __construct( - public string $entity, - public string|null $field = null, - public array|null $definition = null, - public null|Modifier $modifier = null, - public null|Definition $previous = null, - public null|string $action = null, + public string $entity, + public string|null $field = null, + public array|null $definition = null, + public null|Modifier|array $modifier = null, + public null|Definition $previous = null, + public null|string $action = null, ) {} public function toArray() : array diff --git a/view/lean-console/base/console/main-nav.phtml b/view/lean-console/base/console/main-nav.phtml index a9bb6df..3956629 100644 --- a/view/lean-console/base/console/main-nav.phtml +++ b/view/lean-console/base/console/main-nav.phtml @@ -26,4 +26,10 @@ + + + + \ No newline at end of file diff --git a/view/lean-console/page/caching/picea.phtml b/view/lean-console/page/caching/picea.phtml index dce5364..5bf7325 100644 --- a/view/lean-console/page/caching/picea.phtml +++ b/view/lean-console/page/caching/picea.phtml @@ -13,16 +13,24 @@

{{ $path }}

- {% ui.form.post "caching.picea" %} + {% ui:form.post "caching.picea" %} - {% ui.endform %} + {% ui:endform %}
{% foreach $folder as $file %} + {% php $import = include($file) %} +
{{ substr($file, strlen($path)) }} -
+ +
+ {{ $import['namespace'] }} +
+ +
+ {{ $import['view'] }}
{% endforeach %} diff --git a/view/lean-console/page/debugging/logs.phtml b/view/lean-console/page/debugging/logs.phtml new file mode 100644 index 0000000..22e0850 --- /dev/null +++ b/view/lean-console/page/debugging/logs.phtml @@ -0,0 +1,36 @@ +{% extends "lean-console/base/layout" %} + +{% language.set "lean.caching" %} + +{% title _("title") %} + +{% section "header" %} +
{% _ "page-title" %}
+{% endsection %} + +{% section "content" %} +
+
+

{{ $path }}

+ + {% ui:form.get current_url() %} + {% ui:select 'logfile', array_combine($files, $files), get('file') ?? $open %} + {% ui:endform %} +
+ +
+
+ {% foreach array_reverse($content) as $line %} +
{{ $line }}
+ {% endforeach %} +
+
+
+ +{% endsection %} \ No newline at end of file diff --git a/view/lean-console/page/storage/database.phtml b/view/lean-console/page/storage/database.phtml index ae78cf1..fa10131 100644 --- a/view/lean-console/page/storage/database.phtml +++ b/view/lean-console/page/storage/database.phtml @@ -40,14 +40,14 @@
{% _ 'database.table.actions' %}
- {% ui.form.post "database" %} + {% ui:form.post "database" %} {% foreach array_filter($migrations->entities, fn($e) => $e->databaseAdapter() === $connection) as $entity => $item %}
📄 {{ $item->tableName() }}
{% _ "database.table.fields", [ 'count' => count( $item->fieldList() ) ] %}
{% if $context->definition[$entity]['table']->modifier->query %} - {{ $context->definition[$entity]['table']->modifier->query }} + {{= implode('

',(array) $context->definition[$entity]['table']->modifier->query) }}
{% else %}
🗸 This table is up-to-date
{% endif %} @@ -86,7 +86,7 @@
{% endif %} - {% ui.endform %} + {% ui:endform %}
diff --git a/view/lean-console/page/storage/database_import.phtml b/view/lean-console/page/storage/database_import.phtml index 34a1dd7..d973927 100644 --- a/view/lean-console/page/storage/database_import.phtml +++ b/view/lean-console/page/storage/database_import.phtml @@ -10,7 +10,7 @@ {% section "content" %} {% if $connections %} - {% ui.form.post "database.import" %} + {% ui:form.post "database.import" %}
Import data from a connection into another
@@ -19,15 +19,15 @@ {% php $select = array_combine(array_column($connections, 'name'), array_column($connections, 'name')) %}
- Source connection: {% ui.select "source", $select %} + Source connection: {% ui:select "source", $select %}
- Destination connection: {% ui.select "destination", $select %} + Destination connection: {% ui:select "destination", $select %}
{% else %} - {% ui.hidden 'source', $context->source %} - {% ui.hidden 'destination', $context->destination %} + {% ui:hidden 'source', $context->source %} + {% ui:hidden 'destination', $context->destination %}
COPY DATA FROM → TO: @@ -35,7 +35,7 @@ {% foreach $dest as $key => $value %}
- {% ui.select "copy[$key]", [ null => '' ] + $context->sourceTables->buildArray('entityClass', 'entityClass') %} + {% ui:select "copy[$key]", [ null => '' ] + $context->sourceTables->buildArray('entityClass', 'entityClass') %} {{ sprintf('%s (%s)', $key, $value->tableName()) }}
@@ -49,7 +49,7 @@ Cancel
- {% ui.endform %} + {% ui:endform %} {% else %} No connection found {% endif %}