[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Externe Addon settings - ein Vorschlag @ devs.. - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Externe Addon settings - ein Vorschlag @ devs..

14. Aug 2013, 16:50

Moinsn,

hier ein Änderungs-Vorschlag an alle Entwickler bezügl. der Art wie in r4 Addons üblicherweise user settings gespeichert werden. Ich habe dazu ein gist mit (mehr oder weniger) drop-in code erstellt, worums konkret geht hier als Zitat des readmes:

h3. Allgemein

Settings werden nicht mehr wie gewohnt in der config.inc.php des Addons/Plugins gesaved, sondern - ala rex5 - in einem externen file. Die Trennung von eigentlichem Addon/Plugin Code und user settings birgt diverse Vorteile:

* Änderungen der settings erfolgen nicht im/am eigentlichen Code des Addons/Plugins, der Code bleibt immer "sauber" (z.b. im Sinne eines VCS)
* Settings überleben auch ein "Drüberinstallieren" des Addons/Plugins das nicht auf "per file" Basis erfolgt
* Programmatische Update-Strategien werden erleichtert/ermöglicht:
** Eine Installer Funktionalität kann "blind" den Addon Ordner austauschen ohne damit die settings zu überschreiben
** Updates via VCS - z.b. einfaches @git pull@ - sind immer problemloser wenn das eigentliche repos clean (aka unverändert) ist

h3. Konzept/Schema

* Default settings werden wahlweise in einem eigenen file oder direkt in der config notiert - sie dienen als Default
* Das eigentliche settings file wird im Verzeichnis @./redaxo/include/data/ADDONNAME/ADDONNAME.settings.php@ gelagert (rex5 Pfadschema)
* Änderungen der settings werden *nur* in das externe file geschrieben
* Im Addon/Plugin wird das ext. user settings file - sofern vorhanden - nach den default settings included und überschreibt diese (merge)
* Das settings file wird on save der settings ad hoc erstellt


h3. Drop-in Code

Der erforderliche Code um dies umzusetzen hängt davon ab wie das jeweilige Addon seine settings handhabt, ist i.d.r aber relativ trivial. Für Addons die nach dem klassischen rex Konzept ihre settings in der @config.inc.php@ schreiben siehe nachfolgenden generischen Code..
vg, Jan

Joachim.Dörr
Beiträge: 1403
Registriert: 7. Apr 2006, 01:49
Kontaktdaten: ICQ Website

Re: Externe Addon settings - ein Vorschlag @ devs..

14. Aug 2013, 16:53

+1

werd mal schauen, dass ich gelegentlich mal meine Addons damit ausstatte.
Doerr Softwaredevelopment | GitHub
Beati pauperes spiritu.

Benutzeravatar
Ruediger.Nitzsche
Beiträge: 2117
Registriert: 13. Dez 2005, 09:29
Wohnort: Coburg
Kontaktdaten: Website

Re: Externe Addon settings - ein Vorschlag @ devs..

14. Aug 2013, 16:58

Absolut sinnvoll für eine saubere Update- und Deploymentstrategie.

Rüdiger
gn2 netwerk | gn2 hosting | REDAXO Referenzen | Github
Supportanfragen per PN werden gepflegt ignoriert

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: Externe Addon settings - ein Vorschlag @ devs..

14. Aug 2013, 18:15

Macht RexSearch schon seit mehr als 5 Jahren so ähnlich. ;)
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Externe Addon settings - ein Vorschlag @ devs..

14. Aug 2013, 18:28

Xong hat geschrieben:Macht RexSearch schon seit mehr als 5 Jahren so ähnlich. ;)
ähnlich != ausserhalb.. das ist das zentrale Thema. ;)

RexSEO speichert zwar schon länger ausserhalb, aber eben auch intern -> dahingehend auch Themaverfehlung. ;)
vg, Jan

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: Externe Addon settings - ein Vorschlag @ devs..

14. Aug 2013, 18:31

jdlx hat geschrieben:ähnlich != ausserhalb.. das ist das zentrale Thema. ;)
Was auch immer das für einen Vorteil haben soll.
Ich liefere bei RexSearch die Settings-Datei gar nicht mit aus, weshalb die Einstellungen auch so immer erhalten bleiben.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Externe Addon settings - ein Vorschlag @ devs..

14. Aug 2013, 18:40

Xong hat geschrieben:Was auch immer das für einen Vorteil haben soll.
Schrob ich..
vg, Jan

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: Externe Addon settings - ein Vorschlag @ devs..

14. Aug 2013, 19:50

jdlx hat geschrieben:
Xong hat geschrieben:Was auch immer das für einen Vorteil haben soll.
Schrob ich..
Ja, du schreibst immer schön verschwurbelt. =)

Ich finde es gut, wenn die Dateien direkt beim Addon gespeichert werden. Wenn die Datei, die zur Speicherung verwendet wird, nicht mit ausgeliefert wird, sehe ich da auch keine Probleme bei Updates.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Benutzeravatar
Ruediger.Nitzsche
Beiträge: 2117
Registriert: 13. Dez 2005, 09:29
Wohnort: Coburg
Kontaktdaten: Website

Re: Externe Addon settings - ein Vorschlag @ devs..

14. Aug 2013, 21:17

Solange das jeder nach seinem Gusto macht, ist keinem geholfen, exakt deshalb find ich Jans Initiative auch wirklich gut, aktuell ist es halt Frickelei.

Rüdiger
gn2 netwerk | gn2 hosting | REDAXO Referenzen | Github
Supportanfragen per PN werden gepflegt ignoriert

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Externe Addon settings - ein Vorschlag @ devs..

15. Aug 2013, 01:00

Xong hat geschrieben:Ja, du schreibst immer schön verschwurbelt. =)
Welche Stelle ist so verschwurbelt das man es nicht versteht?
Xong hat geschrieben:Ich finde es gut, wenn die Dateien direkt beim Addon gespeichert werden. Wenn die Datei, die zur Speicherung verwendet wird, nicht mit ausgeliefert wird, sehe ich da auch keine Probleme bei Updates.
Ok, nochmal zum mitdenken..

1. was passiert mit settings die innerhalb des Addons/Plugins lagern wenn ein User per FTP eine neue Version des Addons hochlädt? Sie sind - sofern man nicht daran gedacht hatte irgendwie ein backup zu machen - einfach weg/überschrieben..
2. womit hat ein installer Addon zu kämpfen wenn es eine neue Version einspielen will? Siehe 1.
3. Was wird z.b. git anmahnen wenn man ein Addon als repo vorliegen hat und changes pullen will? Nicht commitete Änderungen am Code.. aka die user settings.

Verständlicher wo die Vorteile liegen?
vg, Jan

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: Externe Addon settings - ein Vorschlag @ devs..

15. Aug 2013, 01:47

jdlx hat geschrieben:
Xong hat geschrieben:Ja, du schreibst immer schön verschwurbelt. =)
Welche Stelle ist so verschwurbelt das man es nicht versteht?
Failsave Update-Strategien werden erleichtert bzw. ermöglicht
jdlx hat geschrieben:1. was passiert mit settings die innerhalb des Addons/Plugins lagern wenn ein User per FTP eine neue Version des Addons hochlädt? Sie sind - sofern man nicht daran gedacht hatte irgendwie ein backup zu machen - einfach weg/überschrieben..
2. womit hat ein installer Addon zu kämpfen wenn es eine neue Version einspielen will? Siehe 1.

Verständlicher wo die Vorteile liegen?
Versteh mich nicht falsch; ich weiß schon, wo die Vorteile liegen. Aber auch wenn die Settings im selben Ordner gespeichert werden, kann man eine neue Addonversion einfach drüberbügeln und hat das gleiche Ergebnis. Mehr wollte ich gar nicht sagen.
jdlx hat geschrieben:3. Was wird z.b. git anmahnen wenn man ein Addon als repo vorliegen hat und changes pullen will? Nicht commitete Änderungen am Code.. aka die user settings.
Das meinte ich mit meiner Aussage, dass die Settings-Datei gar nicht erst mit ausgeliefert werden sollte. Und das kann man bei Git(hub) auch sehr einfach über die .gitignore einstellen.

@Rüdiger: Bei Redaxo 5 ist das im Core schon integriert. Für Redaxo 4 find ich´s zwar interessant, aber nicht unbedingt notwendig.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Externe Addon settings - ein Vorschlag @ devs..

15. Aug 2013, 02:08

Xong hat geschrieben:Aber auch wenn die Settings im selben Ordner gespeichert werden, kann man eine neue Addonversion einfach drüberbügeln und hat das gleiche Ergebnis.
Bitte? Wo liegen dann noch die bisherigen user settings vor wenn sie überschrieben/gelöscht wurden?
Xong hat geschrieben:Das meinte ich mit meiner Aussage, dass die Settings-Datei gar nicht erst mit ausgeliefert werden sollte. Und das kann man bei Git(hub) auch sehr einfach über die .gitignore einstellen.
Siehe oben.. und dann braucht man auch nicht mit ignores rumzuwurschteln.

Nochmal anders: schon mal überlegt warum die apps auf deinem Rechner ihre settings nicht innerhalb des app Paketes lagern?
vg, Jan

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: Externe Addon settings - ein Vorschlag @ devs..

15. Aug 2013, 02:44

jdlx hat geschrieben:
Xong hat geschrieben:Aber auch wenn die Settings im selben Ordner gespeichert werden, kann man eine neue Addonversion einfach drüberbügeln und hat das gleiche Ergebnis.
Bitte? Wo liegen dann noch die bisherigen user settings vor wenn sie überschrieben/gelöscht wurden?
In der Datei. Die bleibt ja unangetastet, weil sie vom Addonersteller nicht mit ausgeliefert wird.
jdlx hat geschrieben:Nochmal anders: schon mal überlegt warum die apps auf deinem Rechner ihre settings nicht innerhalb des app Paketes lagern?
Ich hab keine Apps auf dem Rechner. Ich weiß nicht mal, was das sein soll. Ihr mit euren Macs... :)

Ich werd mir deinen Code auf jeden Fall mal anschauen und demnächst bei RexSearch einbauen. Im Prinzip haste ja schon recht. ;)
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Externe Addon settings - ein Vorschlag @ devs..

15. Aug 2013, 03:43

Xong hat geschrieben:In der Datei. Die bleibt ja unangetastet, weil sie vom Addonersteller nicht mit ausgeliefert wird.
Die Datei ist weg.. es sei denn das Update verlief auf Datei für Datei Basis.. unrealistisch und vor allem komplett unnötig. Typischer Fall den imho jeder kennen wird: per FTP neue Version (sprich den Ordner) hochgeschoben.. -> bisherige settings gone. Gerade bei Addons mit vielen/ausgefeilten settings kann das ein richtig mieses Erwachen geben wenn die fein ziselierten Einstellungen auf einmal genullt/default sind.. gutes Beispiel: Rexsearch ;)
Alleine der Vorteils ists imho schon wert, die anderen noch on top..
jdlx hat geschrieben:Ich werd mir deinen Code auf jeden Fall mal anschauen und demnächst bei RexSearch einbauen. Im Prinzip haste ja schon recht. ;)
Der Code ist ein drop in für den einfachsten Fall.. d.h. die klassischen "DYN" settings in der config.. sprich ein mögliches Beispiel das man im Idealfall einfach so übernehmen kann. Es gibt diverse Wege die zum Ziel führen, das Kernthema sind lediglich folgende 2 Punkte:
  • 1. settings ausserhalb des Addon/Plugin Ordners
  • 2. die Konvention hinsichtlich des Pfades, welche sich an jene von r5 anlehnt..
Ein Thema welches man sinnvollerweise einplanen sollte (und der Beispielcode bislang nicht aufgreift) ist das mergen von default und user settings: dadurch kann man neue settings ins Addon aufnehmen ohne ein Problem damit zu haben das es diese im älteren user settings file noch nicht gibt. Die imho eleganteste Methode ist es hierbei die settings key für key zu notieren (und nicht als assoz. array): dadurch braucht man lediglich die user settings nach den default settings zu includen, und hat einen impliziten merge for free... ähnlich der jCurry $.extend() Methode. Beispiel Gregors developer Addon: https://github.com/gharlan/redaxo_devel ... hp#L25-L29 Ich werde meine Addons/Plugins beim Umbau auf ext. settings auch auf die key für key Schreibweise ändern.. die Vorteile liegen imho auf der Hand.

Das developer Addon ist auch ein gutes Beispiel wie man auf vollkommen anderem Wege zum gemeinsamen Ziel kommen kann: Gregor läßt die default settings direkt in der config, schreibt das eigentliche user settings file erst beim saven der settings.. https://github.com/gharlan/redaxo_devel ... da66d8e70d
vg, Jan

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: Externe Addon settings - ein Vorschlag @ devs..

15. Aug 2013, 10:15

jdlx hat geschrieben:Typischer Fall den imho jeder kennen wird: per FTP neue Version (sprich den Ordner) hochgeschoben.. -> bisherige settings gone.
Das ist halt mein einziger Gegenpunkt, den ich angebracht habe. Die Settings verschwinden eben nicht, wenn man per FTP eine neue Version hochlädt (solange man die Einstellungen in einer eigenen Datei speichert). FTP arbeitet dateibasiert. Ich kenne kein Programm, dass einen Ordner komplett löscht, bevor neue Dateien hochgeladen werden. Das wäre mit FTP auch ziemlich mühselig, weil dafür für jede Datei ein extra Löschbefehl abgesetzt werden müsste, was bei vielen Dateien sehr lange dauern kann.

Dennoch hat deine Variante mit dem Speichern der Einstellungen außerhalb des Addonordners ihre Vorteile.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Externe Addon settings - ein Vorschlag @ devs..

15. Aug 2013, 14:20

Xong hat geschrieben:FTP arbeitet dateibasiert.
Du hast recht, in genau dem Fall ist das file save.. das hatte ich falsch auf dem Schirm.
vg, Jan

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Externe Addon settings - ein Vorschlag @ devs..

15. Aug 2013, 17:46

FYI: hab den code nochmal geändert.. ala wie Gregor es in developer macht.. pragmatischer und incl. merge von default/user settings: https://gist.github.com/jdlx/6230772
vg, Jan

treudoof
Beiträge: 21
Registriert: 11. Jan 2011, 15:29

Re: Externe Addon settings - ein Vorschlag @ devs..

16. Aug 2013, 23:49

Ergänzung und damit Ack @Jan: Nicht jeder überschreibt seine Addon Versionen per FTP. Ich zb entwickle teilweise lokal, und jeder der nen Mac besitzt, weiß, dass ein Ersetzen eines Ordners auxh wirklich ersetzen bedeutet. Heißt: Ordner wird gelöscht, neuer Ordner inkl Inhalt erstellt. -> Config weg.

Ps: bitte keine Diskussion anstreben ob das der Mac im Vgl zu Win (der die Dateien ersetzt und ggf ergänzt) richtig oder falsch macht :) Fakt ist: Er tuts :)

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

Re: Externe Addon settings - ein Vorschlag @ devs..

17. Aug 2013, 13:14

Da hier ein "ganz normales" Thema disktuiert wird und dies keine "offizielle Empfehlung" des REDAXO Teams ist, habe ich das Thema wieder in ein normales Thema umgewandelt.

Bitte einfach weiterdiskutieren, eure Meinungen dazu dürft Ihr hier gerne anbringen.

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Externe Addon settings - ein Vorschlag @ devs..

17. Aug 2013, 13:51

Ging lediglich ums anpinnen im sub-Forum damits nicht gleich wieder ferner liefen versandet.. das es eine "private" Initiative ist dachte ich wäre unmißverständlich.
vg, Jan

Zurück zu „Allgemeines [R4]“