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 @@
+
+ {% lang "lean.nav.debugging.label" %}
+
+
\ 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" %}
{% _ 'clear' %}
- {% 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 @@
🗸 {% _ 'database.table.alterAll' %}
{% 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 %}