Hallo, lieber Forumbenutzer. 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 Möglichkeiten der Kommunikation ist das Forum ein wenig eingeschlafen und weniger Nutzer benutzen das Forum aktiv (trotzdem lohnt es sich evtl. hier nach Lösungen zu suchen oder seine Frage zu stellen).

Wir empfehlen, für deine Fragen/Probleme aktuell (zusätzlich) 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: http://redaxo.org/slack/
Tobias Krais
Beiträge: 500
Registriert: 2. Okt 2006, 23:16
Wohnort: Lörrach
Kontaktdaten: Website

Addon Update - welche update.php wird ausgeführt?

22. Dez 2016, 09:55

Hi zusammen,

kann mir jemand sagen, welche update.php beim Addon Update per Installer Addon ausgeführt werden sollte? Die vom neu heruntergeladenen Package oder die noch installierte aus dem vorhandenen Package?

Warum stelle ich diese Frage? Mein neues Addon d2u_helper sollte beim Update des Addons aktualisierte Module automatisch aktualisieren. In der alten update.php Version wurde eine entsprechende Meldung per rex_view ausgegeben, in der neuen nicht mehr. Beim Update auf mehreren Seiten wird beim installieren der neuen Version nun die Meldung ausgegeben. Ist das richtig so?

Außerdem würde ich beim Ausführen der Datei update.php gerne gerne auf die Dateien des neu heruntergeladenen Addons zugreifen und diese in die Datenbank einspielen. Aber: auch hier werden nur die alten Dateien in die DB eingespielt?!

Liebe Grüße,

Tobi

Benutzeravatar
Gregor.Harlan
Entwickler
Beiträge: 1130
Registriert: 4. Jun 2007, 10:35
Wohnort: Frankfurt am Main

Re: Addon Update - welche update.php wird ausgeführt?

22. Dez 2016, 11:56

Es wird die neue ausgeführt, die alte würde ja keinen Sinn ergeben.
Mit der rex_view-Meldung klingt kurios.

Mit den alten Dateien kann ich hingegen eventuell erklären.
Denn wichtig zu wissen ist, dass während der Auführung der update.php, das neue Addon noch in einem temporären Ordner liegt. Die rex_path-Funktionen etc. zeigen somit noch auf das alte Addon.
In der update.php sollte man daher mit __DIR__ arbeiten, wenn man auf die neuen Dateien zugreifen will.

Erst wenn die update.php erfolgreich durchlaufen wurde, wird das alte Addon gelöscht, und der Ordner des neuen umbenannt.
Vorher liegt das Addon in redaxo/src/addons/.new.foo, wenn das Addon "foo" heißt.
Friends Of REDAXO: Gemeinsame REDAXO-Entwicklung!

Tobias Krais
Beiträge: 500
Registriert: 2. Okt 2006, 23:16
Wohnort: Lörrach
Kontaktdaten: Website

Re: Addon Update - welche update.php wird ausgeführt?

22. Dez 2016, 12:05

Hi Gregor,

das hilft mir schon mal sehr. Danke für die schnelle Antwort. Wenn ich in der neuen update.php per Autoloader eine Klasse aus dem neuen Package aufrufen möchte, geht das überhaupt? Oder wird dann die alte Klasse aufgerufen?

Liebe Grüße,

Tobi

Benutzeravatar
Gregor.Harlan
Entwickler
Beiträge: 1130
Registriert: 4. Jun 2007, 10:35
Wohnort: Frankfurt am Main

Re: Addon Update - welche update.php wird ausgeführt?

22. Dez 2016, 13:23

Die alte. Vor allem kann es ja auch sein, dass sie sowieso schon geladen wurde.
Aber auch allgemein berücksichtigt der Autoloader nicht den lib-Ordner im temporären Addon-Pfad.

Übrigens wird die update.php auch ausgeführt, wenn das Addon installiert, aber nicht aktiviert ist. Dann werden die Klassen sowieso nicht geladen.

Somit sollte man vermeiden, die Addon-Klassen in der update.php zu verwenden.
Friends Of REDAXO: Gemeinsame REDAXO-Entwicklung!

Tobias Krais
Beiträge: 500
Registriert: 2. Okt 2006, 23:16
Wohnort: Lörrach
Kontaktdaten: Website

[GELÖST] Re: Addon Update - welche update.php wird ausgeführ

23. Dez 2016, 00:06

Lieber Gregor,

danke für deine Tipps. Die Updategeschichte konnte ich mit dem ".new." Verzeichnis lösen. Die rex_view Nachrichten wurden aus den Dateien des alten Addon Verzeichnisses aufgerufen. Es wurde und wird die korrekte update.php aufgerufen.

Danke für die Hintergrundinfos!

Liebe Grüße,

Tobi

Zurück zu „AddOns / Packages [R5]“