Sven Rautenberg: Configuration Auslagern

Beitrag lesen

Moin!

Das ini-Dateiformat ist textbasiert und menschenlesbar; es bietet sich daher an, wenn auch Laien die Konfiguration editieren sollen. Andererseits braucht das Parsen einer ini-Datei bestimmt ein wenig mehr Rechenleistung, als wenn die Parameter direkt als PHP-Variablen im Code stehen.

Frage zu dem: Beides sind Klartext Dateien. Warum also braucht ini fürs aulesen mehr rechenleistung? Ok. Wenn ich etwas in eine php-datei auslagere, sind die Variable direkt in php vorhanden. Ich nehme mal an, dass das öffnen und laden von variablen von einer ini über fopen() einwenig rechenkapazität benötigt. aber ist das den soviel das man da spürbar n unterschied merkt?

PHP-Code landet im Opcode-Cache. Dort steht er als vorkompilierter Bytecode zur Verfügung und kann direkt in Variablenerzeugungsaktion treten. Muss man hingegen eine INI-Datei einlesen, steht nix im Cache, man muss die Datei öffnen, einlesen, parsen - dann noch die Variablen erzeugen, wie im PHP-Code auch. Das ist in der Regel langsamer.

Kniff: Man kann das Ergebnis des INI-Parsens mit var_export() auch als PHP-Code wieder in eine Datei schreiben und alternativ benutzen. Allerdings ist das Erzeugen solch eines File-Caches nicht trivial, vor allem im Hinblick auf die Neuerzeugung bei Änderungen.

Grüße Sven