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/
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

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“