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..
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/
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/
-
- Beiträge: 1403
- Registriert: 7. Apr 2006, 01:49
- Kontaktdaten: ICQ Website
Re: Externe Addon settings - ein Vorschlag @ devs..
+1
werd mal schauen, dass ich gelegentlich mal meine Addons damit ausstatte.
werd mal schauen, dass ich gelegentlich mal meine Addons damit ausstatte.
- Ruediger.Nitzsche
- Beiträge: 2117
- Registriert: 13. Dez 2005, 09:29
- Wohnort: Coburg
- Kontaktdaten: Website
Re: Externe Addon settings - ein Vorschlag @ devs..
Absolut sinnvoll für eine saubere Update- und Deploymentstrategie.
Rüdiger
Rüdiger
gn2 netwerk | gn2 hosting | REDAXO Referenzen | Github
Supportanfragen per PN werden gepflegt ignoriert
Supportanfragen per PN werden gepflegt ignoriert
Re: Externe Addon settings - ein Vorschlag @ devs..
Macht RexSearch schon seit mehr als 5 Jahren so ähnlich.
Re: Externe Addon settings - ein Vorschlag @ devs..
ähnlich != ausserhalb.. das ist das zentrale Thema. ;)Xong hat geschrieben:Macht RexSearch schon seit mehr als 5 Jahren so ähnlich. ;)
RexSEO speichert zwar schon länger ausserhalb, aber eben auch intern -> dahingehend auch Themaverfehlung. ;)
vg, Jan
Re: Externe Addon settings - ein Vorschlag @ devs..
Was auch immer das für einen Vorteil haben soll.jdlx hat geschrieben:ähnlich != ausserhalb.. das ist das zentrale Thema.
Ich liefere bei RexSearch die Settings-Datei gar nicht mit aus, weshalb die Einstellungen auch so immer erhalten bleiben.
Re: Externe Addon settings - ein Vorschlag @ devs..
Schrob ich..Xong hat geschrieben:Was auch immer das für einen Vorteil haben soll.
vg, Jan
Re: Externe Addon settings - ein Vorschlag @ devs..
Ja, du schreibst immer schön verschwurbelt. =)jdlx hat geschrieben:Schrob ich..Xong hat geschrieben:Was auch immer das für einen Vorteil haben soll.
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.
- Ruediger.Nitzsche
- Beiträge: 2117
- Registriert: 13. Dez 2005, 09:29
- Wohnort: Coburg
- Kontaktdaten: Website
Re: Externe Addon settings - ein Vorschlag @ devs..
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
Rüdiger
gn2 netwerk | gn2 hosting | REDAXO Referenzen | Github
Supportanfragen per PN werden gepflegt ignoriert
Supportanfragen per PN werden gepflegt ignoriert
Re: Externe Addon settings - ein Vorschlag @ devs..
Welche Stelle ist so verschwurbelt das man es nicht versteht?Xong hat geschrieben:Ja, du schreibst immer schön verschwurbelt. =)
Ok, nochmal zum mitdenken..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.
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
Re: Externe Addon settings - ein Vorschlag @ devs..
jdlx hat geschrieben:Welche Stelle ist so verschwurbelt das man es nicht versteht?Xong hat geschrieben:Ja, du schreibst immer schön verschwurbelt. =)
Failsave Update-Strategien werden erleichtert bzw. ermöglicht
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: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?
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.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.
@Rüdiger: Bei Redaxo 5 ist das im Core schon integriert. Für Redaxo 4 find ich´s zwar interessant, aber nicht unbedingt notwendig.
Re: Externe Addon settings - ein Vorschlag @ devs..
Bitte? Wo liegen dann noch die bisherigen user settings vor wenn sie überschrieben/gelöscht wurden?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.
Siehe oben.. und dann braucht man auch nicht mit ignores rumzuwurschteln.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.
Nochmal anders: schon mal überlegt warum die apps auf deinem Rechner ihre settings nicht innerhalb des app Paketes lagern?
vg, Jan
Re: Externe Addon settings - ein Vorschlag @ devs..
In der Datei. Die bleibt ja unangetastet, weil sie vom Addonersteller nicht mit ausgeliefert wird.jdlx hat geschrieben:Bitte? Wo liegen dann noch die bisherigen user settings vor wenn sie überschrieben/gelöscht wurden?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.
Ich hab keine Apps auf dem Rechner. Ich weiß nicht mal, was das sein soll. Ihr mit euren Macs...jdlx hat geschrieben:Nochmal anders: schon mal überlegt warum die apps auf deinem Rechner ihre settings nicht innerhalb des app Paketes lagern?
Ich werd mir deinen Code auf jeden Fall mal anschauen und demnächst bei RexSearch einbauen. Im Prinzip haste ja schon recht.
Re: Externe Addon settings - ein Vorschlag @ devs..
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 ;)Xong hat geschrieben:In der Datei. Die bleibt ja unangetastet, weil sie vom Addonersteller nicht mit ausgeliefert wird.
Alleine der Vorteils ists imho schon wert, die anderen noch on top..
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: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. ;)
- 1. settings ausserhalb des Addon/Plugin Ordners
- 2. die Konvention hinsichtlich des Pfades, welche sich an jene von r5 anlehnt..
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
Re: Externe Addon settings - ein Vorschlag @ devs..
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.jdlx hat geschrieben:Typischer Fall den imho jeder kennen wird: per FTP neue Version (sprich den Ordner) hochgeschoben.. -> bisherige settings gone.
Dennoch hat deine Variante mit dem Speichern der Einstellungen außerhalb des Addonordners ihre Vorteile.
Re: Externe Addon settings - ein Vorschlag @ devs..
Du hast recht, in genau dem Fall ist das file save.. das hatte ich falsch auf dem Schirm.Xong hat geschrieben:FTP arbeitet dateibasiert.
vg, Jan
Re: Externe Addon settings - ein Vorschlag @ devs..
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
Re: Externe Addon settings - ein Vorschlag @ devs..
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
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
- 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..
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.
Bitte einfach weiterdiskutieren, eure Meinungen dazu dürft Ihr hier gerne anbringen.
Re: Externe Addon settings - ein Vorschlag @ devs..
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