Hilfe! Autoinclude - wie?

Paresy hat mir hier:

einen Tip mit autoinclude geschickt. Ich komme aber irgendwie nicht weiter. Doku kennt das Wort nicht, wenn ich auf PHP.NET autoinclude eingebe, kommt auch nix verwertbares … google schmeisst mir zwar 59.000 Ergebnisse, viele von 2003 und so… steht grad komüplett im Wald.

Ist bestimmt ultraeinfach, wenn man’s weiss …

Danke!
jwka

Das Zauberwort heißt auto_prepend_file (siehe PHP: Beschreibung der php.ini-Direktiven des Sprachkerns - Manual) ;).

Danke!

Blöde Sache: Danach (auto_prepend) habe ich gar nicht mehr gesucht, weil wir es davon auch ganz zu Anfang meiner Fragen mal hatten. Aus irgendwelchen (wohl aus heutiger Sicht falschen) Gründen hatte ich das aber als „geht nicht“ abgehackt.

Jetzt habe ich in diesem Kontext noch eine (letzte?) Frage:

Wie kriege ich das Script-Verzeichnis von IPS? Grundsätzlich kann doch (is ne Frage) der Benutzer das Verzeichnis auch umbennenen, oder?

Mit IPS_GetKernelDir() kriege ich ja „nur“ das IPS-Hauptverzeichnis.

Oder kann es gar nie nimmermehr sein, dass ein User das script-Verzeichnis z.B. in „myscripts“ oder so umbenennt?

Danke
jwka

Hallo Horst,

bedeutet das das ich in dieses File z.B alle Konstanten wie ID’s etc eintragen kann und das ich auf diese dann zugreifen kann? So ähnlich wie globale Konstanten?
Wird die angegebene Datei automatisch in jedes IPS Script eingebunden?
Wird das System dadurch langsamer?
…oder gibt es da noch etwas Eleganteres?

bedeutet das das ich in dieses File z.B alle Konstanten wie ID’s etc eintragen kann und das ich auf diese dann zugreifen kann? So ähnlich wie globale Konstanten?

Ja, das bedeutet das. Du kannst die ID’s dann tatsächlich über Konstanten einbinden und ansprechen - quasi wie Aliasse. Aber das ist mit Vorsicht zu geniessen, ins besondere wegen …

Wird das System dadurch langsamer?

Da muss man m.E. ein bischen genauer Fragen und auch den Ausgangspunkt beschreiben. Langsamer als ein im Code (am Anfang) vorhandenes INCLUDE?

Wohl kaum.

Aber: Wenn Du jedesmal alle ID’s includierst, dann hast Du Ladezeiten des File und Abarbeitung des Interptreters für einen Haufen Code, der zu 90% und mehr im jeweiligen Script gar nicht gebraucht wird, zu berücksichtigen.

das ist ne generelle Frage (die ich auch gerne Frage): Pflegbarkeit und Einfachheit vs. Geschwindigkeit.

…oder gibt es da noch etwas Eleganteres?

m.E. gäbe es etwas eleganteres und ich habe das mit einem anderen User hier schon (erfolgreich) ausprobiert: eine DLL, die „zum Kernel“ dazu geladen wird und solche Infos permanent im Speicher, per Funktion abrufbar, hält.

Das wären dann die von mir schon öfter angefragten „globalen Variablen“ die einfach in der Umgebung da sind, ohne dass es Code bedarf.

Nachteil an einer DLL: Kompatibilität für zukünftige Versionen. Wer sich die Diskussionen um z.B. Webfront im Update 2.3 nach 2.4 durchliesst, weiss, wovon ich spreche.

So ne DLL wird in zukünftigen Versionen u.U. einfach mal eben nicht mehr unterstützt oder nicht mehr funktionieren. Dann ist das ganze Rahmenwerk futsch.

jwka

@jwka
Gibt es nicht die Möglichkeit einfach beim IPS Start ein Script zu laden welches globale Variablen für das IPS enthält und variablen scriptübergreifend zur Verfügung stellt?

In Visual Basic kann ich z.B Variablen als Global definieren.

@jwka: http://www.ip-symcon.de/forum/project.php?issueid=669#note5842
@zman: Schau dir mal die Release Notes zur 2.5 Pre-Beta an. Da steht etwas zu dem Thema.

Solange du nicht hunderte kb Code includest, sollte es kaum Performance kosten. So ein paar Konstanten sind da ziemlich unkritisch.

paresy

@paresy
Bei mir sind es ca 1000 ID`s oder Stringkonstanten.

Kann ich das über auto_prepend machen dann muss ich nicht immer includes schreiben?

@paresy: Kannst Du mal nen Link zu dem 2.5 einstellen? Die Forumsuche ergab da leider nix, weder mit „2.5“ noch „Pre-Beta“.

Danke.
jwka

Die ist z.Z. noch closed Beta.