[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Redaxo Klassenmethoden non-static - 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/
martinpet
Beiträge: 59
Registriert: 17. Okt 2008, 13:06

Redaxo Klassenmethoden non-static

23. Mär 2013, 19:36

Hi,

als ich etwas durch die Redaxoklassen stöberte, ist mir aufgefallen, dass die Klassenmethoden alle ein auskommentiertes "public static" haben. Natürlich lassen sich diese Methoden trotzdem statisch aufrufen, allerdings ist das um ca. 300% langsamer, als eine statisch deklarierte Methode ebenso aufzurufen.

Einfach mal ein Beispiel wäre: class.oocategory.inc.php Zeile Zeile 96

Code: Alles auswählen

/*public static*/ function getRootCategories
Gibt es einen Grund, wieso die statische Deklaration der Methoden auskommentiert ist?

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

Re: Redaxo Klassenmethoden non-static

23. Mär 2013, 20:44

Hi martinpet!
martinpet hat geschrieben:Gibt es einen Grund, wieso die statische Deklaration der Methoden auskommentiert ist?
Abwärtskompatibilität zu Uralt-PHP-Versionen.
LG,
Xong

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

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Redaxo Klassenmethoden non-static

24. Mär 2013, 10:35

...und da REDAXO 4.5 (http://www.redaxo.org/de/forum/neuigkei ... 18916.html) nur noch ab PHP 5.3 läuft, konnte das nun korrigiert werden: https://github.com/redaxo/redaxo4/blob/ ... nc.php#L96

danke übrigens für den hinweis. mir persönlich war bis jetzt noch nicht bewusst das es hier ein performanceunterschied gibt.

martinpet
Beiträge: 59
Registriert: 17. Okt 2008, 13:06

Re: Redaxo Klassenmethoden non-static

24. Mär 2013, 19:57

@xong: na dann steht mir ja nichts mehr im Wege, das bei meiner Installation zu korrigieren. :D

@rexdude: Gut zu wissen, dass es in 4.5 gefixt ist.
Im Prinzip läuft alles, was E_NOTICES auslöst langsamer, auch wenn die eigentliche Ausgabe von E_NOTICES unterdrückt ist, da die notice auch im Hintergrund getriggert wird und so "Arbeit" anfällt.

Grüße aus Mainz
Martin

martinpet
Beiträge: 59
Registriert: 17. Okt 2008, 13:06

Re: Redaxo Klassenmethoden non-static

24. Mär 2013, 20:22

Und wer über eine Bash verfügt kann das Redaxoweit auf die Schnelle so korrigieren:
(Wie immer: auf eigene Verantwortung ausführen bzw. nur wenn man genau weiss was man da tut 8) )

Code: Alles auswählen

# Im "redaxo/" Verzeichnis ausführen
find ./ -regextype posix-extended -regex '.*\.php$' -print0 | \
xargs -0 sed -r -i 's/(.*\/\*\s*)(public static)(\s*\*\/)/\2/g'
HTH
Grüße aus Mainz
Martin

Zurück zu „Sonstiges“