Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Einstellungen exportieren/importieren als Datei #123

Open
skerbis opened this issue Sep 21, 2022 · 15 comments
Open

Einstellungen exportieren/importieren als Datei #123

skerbis opened this issue Sep 21, 2022 · 15 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@skerbis
Copy link
Member

skerbis commented Sep 21, 2022

Für spätere Tests wäre es gut wenn man einen kopierbaren Bericht erhalten würde, den man ggf. mit in das Repo legen könnte.

Beispiel:

Test Report:

PHP Version: 8.2

Stufe: 9

Einstellungen:

  • Strict
  • Deprecation Warnings
  • phpstan-dba
  • cognitive complexity
  • dead code

Ergebnis: bestanden

@staabm
Copy link
Member

staabm commented Sep 21, 2022

Welchen zweck soll dieser bericht erfüllen? Was willst du damit erreichen?

@skerbis
Copy link
Member Author

skerbis commented Sep 21, 2022

Ich würde gerne ein file in das Repo legen um anderen mitzuteilen wie getestet wurde, falls am AddOn gearbeitet wird.

@staabm
Copy link
Member

staabm commented Sep 21, 2022

Wäre es dann nicht eher sinnvoll dass man die rexstan Einstellungen importierbar/exportierbar macht?

Wenn die settings somit als datei vorliegen könnte man diese beliebig versionieren/committen

@skerbis
Copy link
Member Author

skerbis commented Sep 21, 2022

Gute Idee

@staabm
Copy link
Member

staabm commented Oct 2, 2022

Import/Export der settings als yaml PR welcome

@staabm staabm added enhancement New feature or request help wanted Extra attention is needed labels Oct 2, 2022
@staabm staabm changed the title Abschlussbericht als kopierbares Markdown Einstellungen exportieren/importieren als Datei Oct 13, 2022
@eaCe
Copy link
Member

eaCe commented Oct 15, 2022

Wie aus der DB oder ohne Pfad?

@staabm
Copy link
Member

staabm commented Oct 15, 2022

bin mir nicht sicher worauf du hinaus willst, aber ich könnte es mir so vorstellen:

buttom zum exportieren der die aktuellen settings als datei download sendet (z.b. als json oder xml).
weiterer upload file button der dieselbe datei hochladen lässt und als settings abspeichert.

ausblick: 2 consolen commands zum import/export selbiger datei (separate ausbaustufe)

@eaCe
Copy link
Member

eaCe commented Oct 15, 2022

Ich meine das die Einstellungen als Pfad in rex_config gespeichert werden:

grafik

@staabm
Copy link
Member

staabm commented Oct 15, 2022

vllt macht es sinn die pfade innerhalb der export datei relativ zum redaxo root zu speichern

und am besten mit / als directory separator, damits auf windows und mac/linux funktioniert (aber das passiert durchs relativieren vermutlich bereits automatisch)

@eaCe
Copy link
Member

eaCe commented Oct 16, 2022

@staabm ich verstehe leider nicht wo der Pfad herkommt. Wenn die Pfade relativ gespeichert werden müsste ich diese beim aufruf von rexstan irgendwie übersetzten. Ich finde aber keine Funktion wo das hier passiert:
grafik
Es wird eigentlich nur execCmd aufgerufen, aber woher kommt der Pfad? :|

@staabm
Copy link
Member

staabm commented Oct 28, 2022

@eaCe schick gerne deinen stand als PR und dann schauen wir gemeinsam auf den code

@eaCe
Copy link
Member

eaCe commented Oct 31, 2022

@staabm du kannst den branch testen: https://github.com/FriendsOfREDAXO/rexstan/tree/import-export
Da passiert noch nicht viel. Es werden nur relative Pfade gespeichert.

@christophboecker
Copy link
Member

christophboecker commented Oct 31, 2022

@eaCe Ich vermute fast, dass das nicht die ganze Lösung ist. Weil: in dem Commit werden ja "nur" Select-Felder für die Auswahl der Konfiguration mit relativen statt absoluten Pfadnamen bestückt (page/settings). Die ausgwewählten Pfade schreibt dann das Formular in die rex_config und zusätzlich werden sie aus $_REQUEST ausgelesen und mittels RexStanUserConfig in die Datei user-config.neon geschrieben, die die absoluten Pfade benötigt.

$form_name = $form->getName();
if (rex_post($form_name . '_save')) {
$postData = rex_post($form_name);
$level = (int) $postData['level'];
$addonPaths = $postData['addons'] ?? [];
$extensions = $postData['extensions'] ?? [];
$phpversion = (int) $postData['phpversion'];
$paths = [];
foreach ($addonPaths as $addonPath) {
$paths[] = $addonPath;
}
$includes = [];
foreach ($extensions as $extensionPath) {
$includes[] = $extensionPath;
}
RexStanUserConfig::save($level, $paths, $includes, $phpversion);

Was spräche denn dagegen, für eine Reporting-Ausgabe die Daten aus der rex_config zu nehmen, die Pfade in relative umzurechnen und dann auszugeben. Oder wie bei Extensions über die Arrays in RexStanSettings in deren konkreten Namen? Wie gesagt, dann wäre kein Eingriff in das Gesamtsystem nötig.

Wobei man auch durchaus die Frage stellen kann, warum die Pfade (als Select-Value) direkt in den Selects stehen statt der Namen(addon bzw. Extension) ? Es reicht aus, über die Namen die Pfade beim Speichern der user-config.neon zusammenzustellen. Das würde aber einen etwas tiefergehenden Umbau bedeuten. Aber wo steht geschrieben, dass man am Start als gut (weil schnell realisiert) erkannte Lösungen immer weiter führen muss :-) ?

@staabm
Copy link
Member

staabm commented Oct 31, 2022

danke. ich hab mal nen PR geöffnet sodass wir dort direkt am code arbeiten können statt hier abstrak im issue
#202

@eaCe
Copy link
Member

eaCe commented Nov 5, 2022

@christophboecker danke für den Hinweis. Dann kam der Pfad also aus der .neon-Datei.
Dein Vorschlag die Pfade bei Ex- und Import umzurechnen sind sicher die einfachere (schnellere) Methode. Ich teste das mal,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants