Sieht so aus. Aufrund diverser Umstellungen ist sie angewachsen und ich frage mich, wann die autoload geladen wird und ob die Strategie in Bezug auf RAM Verbrauch und Performance gut ist. Ich vermute, dass sie bei jedem neuen PHP Thread geladen wird, denke ich. Da ich es aber nicht weiß, frage ich hier.
Die __autoload.php wird von Symcon bei jeder Skriptausführung berücksichtigt, d. h. dein ganzer Block require_once(...) hängt an jedem PHP‑Thread dran. Das ist funktional okay, aber aus RAM‑ und Performance‑Sicht solltest du die Datei schlank halten: nur wirklich globale, universell genutzte Helper/Funktionen dort reinpacken und Spezialskripte (Nmap, Echo, Evohome, Nanoleaf, …) besser nur in den Skripten einbinden, die sie tatsächlich brauchen.
Soweit die Theorie
Was die includes wirklich kosten, kannst du leicht testen. Nimm einen Skript mit z.B.
echo 'Halle Welt';
und lass es im Skript-Editor ausführen.
In der Fußzeile ziehst du dann für einen kurzen Moment, was die Includes dich kosten.
Wenn du Werte unter 10 ms siehst, würde ich sagen, es ist alles ok.
Ich selber nutze die Technik nicht und bei mir dauert das Skript 1 ms.
Bedenke auch, das sehr viel von PHP gecached. Von daher vermute ich, dass die Performance bei dir nicht das Thema sein wird.
“Hallo Welt” hat 40ms gebraucht. Dann hab ich es wie von dir empfohlen mit “Halle Welt” probiert. Und siehe da, es waren nur mehr 22ms. Noch mal ausgeführt und es war auf 1ms runter.
Mir ist schon klar, dass es keinen Unterschied macht ob Halle oder Hallo ;-). Ich denke der Cache hat dann mitgespielt. Dann ist es so, wie ich schon vermutet habe. Jeder Thread verarbeitet die.
Gibt es eine andere Möglichkeit außer dem include? Ähnlich bei den Modulen, wo die Funktionen auch global zur Verfügung stehebn und sogar im Editor in der Vorschau angezeigt werden?
Wäre cool, wenn man das ganze einmal zentral machen könnte um das ein für alle mal gelöst zu haben ohne in jedem Skript ein include oder require machen zu müssen.
Für “einfach und komfort” ist autoload am Besten, allerdings auch der Punkt, der alles komplett lahmlegt, wenn ein Fehler in einem der autoload-Scripte ist.