Andreas Korthaus: PHP 4 -> PHP 5

Beitrag lesen

Hallo!

Kommt ganz drauf an, wie sowas realisiert würde. Ich denke da nur an die Java-VM. Wenn man eine Art Sandbox für kompilierten PHP Code basteln würde...

PHP ist nicht Java ;-)
Die ZendEngine ist die VM die den PHP-Opcode ausführt, etwa vergleichbar dem Java Bytecode. Es gibt Opcode Caches (Zend Accelerator, PECL::APC...), die den Opcode der PHP-Scripte im RAM cachen, und somit Scripte nicht ständig neu geparst oder überhaupt geöffnet werden müssen.

Naja, idealweise würde der Server ja selbst erkennen, ob das Script bereits kompiliert wurde oder nicht. Durch irgendein Schlüsselwort könnte man dem Server sagen, stop, hier gibts nichts mehr zu inpretieren. Und für den PHP-Einsteiger würde sich damit nichts ändern.

Du kannst Dir ja mal Gedanken machen und den Entwicklern einen Vorschlag inkl. Patch + Beispiel unterbreiten ;-)

Neben den oben genannten, ich weiß auch nicht ob das ganze Sicherheitstechnisch problematisch ist, denn wer sagt dass die Executables alle "sauber" sind?
Naja, sie werden genauso sauber oder unsauber sein, wie der Quelltext auch.

Ich dachte Du meintest jetzt wirklich ausführbare Dateien, die keinen Interpreter brauchen.

[Zend Encoder]
Dann hatte ich das bisher falsch verstanden. Dachte die Scripte würden 'vorkompiliert', daher auch der von Zend angebene Performancevorteil.

Ich weiß nicht ob Zend das verspricht, ich glaube die versprechen Dir ein bisschen vom Zend Optimizer, aber dessen Effekt ist selbst mit Opcode-Cache marginal. Aber wenn Du einen Encoder verwendest, kannst Du meines Wissens nicht gleichzeitig einen Opcode-Cache verwenden, womit es am Ende deutlich langsamer wird.

Aber nur um Scripte gegen Einsicht zu schützen, ist das natürlich Unfug - IMHO

Kann auch Sinn machen, aber sicher nicht wenn es um Performance geht.

Grüße
Andreas

--
SELFHTML Tipps & Tricks: http://aktuell.de.selfhtml.org/tippstricks/