Kb. 2004 óta foglalkozok PHP-vel. Igen, tudom, hogy lehet CLI-ből is futtatni (pont most nyessük vissza azt a részét a rendszereinknek...), és nem, nem tud ugyanúgy futni, mint a Java vagy a .NET. Kezdjük onnan, hogy az utóbbi kettő egy JIT-telt nyelv, míg a PHP egy interpretált, és akkor látom még mindig nem sikerült felfogni a különbséget aközött, hogy:
PHP script:
1) Beesik a request az [insert kedvenc webserver here]-hez:
2) A kérést megkapja a PHP, mod_php vagy fcgi-ként, rosszabb esetben CGI-ként és indul nulláról egy PHP process.
3) Nekiáll interpretálni a kódot
3.1) Jobb esetben valamilyen opcode cache-ből rángatja elő ugyanezt.
4) Inicializálja a webes scriptkupacot/frameworköt, akármit, db kapcsolatot, mindent.
5) Egyszer csak eljut a kérés lényegi részéhez, ahol már a tényleges munka fut.
6) Visszaböfögi a webszervernek a választ, majd felszabadít mindent.
VS
Application server:
0) Elindul vagy elindítja az AS az alkalmazásod
0.1) Az alkalmazásod inicializál
0.2) Ha kell betöltöd az összes adatot, amivel dolgozni akarsz, felépíti a DB kapcsolatokat, stb.
0.3) Mindezt egyszer.
----
1) A már futó alkalmazás megvárja, míg jön egy request.
2) Inicializálás helyett egyből a modul fog futni.
3) TADA.WAV, GOTO 1
És igen, vágom, hogy beletúrtak egy rakás dolgot, PHP5-től már-már majdnem jól használható OOP is van benne, de még így is rengeteg olyan dolog van, ami mondjuk C#-ban vagy Java-ban ezerszer egyszerűbb.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™