Hallo!
Man müsste von dem reinen Interpreter weg kommen.
Idealweise würde das so aussehen:
Ich entwickle das Script mit allen Erweiterungen die für das Projekt relevant sind. Dann kompiliere ich es fix und fertig, so das der Interpreter sozusagen nichts mehr zu tun bekommt. Der Server arbeitet also kein zu interpretierendes Script mehr ab, sondern greift auf ein fertig kompiliertes Programm zu.
Vorteile:
- Performance
Ich habe gelesen (finde die Quelle leider nicht), dass es rein Performance-mäßig so viel nicht bringen würde - gegenüber mod_php/fcgi + opcode cache.
- Modularisierung (eben auf der Entwicklerebene)
Aber stell Dir mal vor, Du hättest gerade mit PHP angefangen, und müsstest das dann erst mal kompilieren, evtl. sogar noch mit verschiedenen Flags... Außerdem wird die Entwicklung so langsamer, möglicherweise auch qualitativ schlechter weil man nicht mehr so schnell die Ergebnisse kontrollieren kann, Tests laufen lassen kann...
- Portabilität
Du bekommst aber Probleme, dass Deine schön kompilierten Scripte auf einmal nicht mehr überall laufen. Möglicherweise schon nicht auf unterschiedlichen Unix/Linux-Versionen, aber in jedem Fall nicht gleichzeitig unter Windows und Linux. Und schon gar nicht auf unterschiedlichen Rechner-Architekturen! Oder weißt Du ob Provider XY Solaris, Linux, FreeBSD... als Betriebssystem einsetzt, und das auf einer sparc-, x86-, amd64-... Architektur?
Nachteile:
mit fallen keine ein,
mir schon ;-)
Neben den oben genannten, ich weiß auch nicht ob das ganze Sicherheitstechnisch problematisch ist, denn wer sagt dass die Executables alle "sauber" sind?
außer das es das eben noch nicht gibt.
doch, das gibts: http://www.roadsend.com/home/index.php?SMC=1&pageID=compiler
Ansatzweise wurde das schon von Zend mit dem encoder realisiert - aber eben nur ansatzweise.
Das ist ganz was anderes. Hiermit kannst Du nur Deine Scripte in ein sehr schwer zu entzifferndes Format übersetzen, was dann Dank eines Zend-Moduls vom Interpreter zur Laufzeit in PHP-Opcode umgewandelt werden kann. Somit kann niemand so ohne weiteres den Quellcode der Scripte lesen, auch wenn er die funktionierenden PHP-Dateien öffnen/lesen kann.
Grüße
Andreas