Úvod

Necelé dva roky po uvedení PHP3 v létě 1998 je na světě další verze stále populárnějšího skriptovacího jazyka PHP. Na první pohled se PHP4 od předchozí verze neliší, největší změny byly provedeny v samotném jádře celého systému. Z toho plyne jeden velice důležitý a praktický důsledek — skripty napsané pro PHP3 budou v naprosté většině případů fungovat i v PHP4.

Interpret jazyka používaného v PHP byl kompletně přepsán a nese nyní jméno Zend. Důvodů proč jádro přepsat bylo několik. Jedním z hlavních však byla snaha zvýšit rychlost provádění hodně složitých skriptů. Autoři Zendu (Zeev Suraski a Andi Gutmans) se proto rozhodli použít zcela jiný přístup. PHP3 bylo klasický interpret, který postupně četl zdrojový kód skriptu a prováděl ho. Zend nejprve načte celý skript, zkompiluje jej a poté spustí. U složitějších skriptů dojde k několikanásobnému zvýšení rychlosti jejich běhu, jednoduché skripty se provádí zhruba stejně rychle jako ve verzi 3.0.

Zatímco v PHP3 byl samotný interpret jazyka velice úzce provázán s jednotlivými funkcemi a s webovým serverem, resp. rozhraním CGI, PHP4 je vystaveno mnohem více modulárně. Interpret je realizován nezávislým modulem Zend. Díky tomu může být jazyk PHP použit i jinde než jen v PHP4. Uvažuje se o použití Zendu při implementaci uložených procedur v populární databázi MySQL.

Samotné jádro Zendu lze rozšiřovat o další moduly jako debugger, optimalizátor kódu apod. Výrazným způsobem se změnila i správa paměti. Podobně jako v Javě jsou počítány reference na každý objekt uložený v paměti. Pokud všechny reference zaniknou — například při skončení funkce, při přiřazení nové hodnoty do proměnné apod. —, je paměť alokovaná pro objekt automaticky uvolněna. Nestane se proto, že by větší skripty, které pracují s mnoha proměnnými a objekty, měly zbytečně velké paměťové nároky.

Aby šlo PHP4 snáze integrovat s různými webovými servery, obsahuje pro komunikaci s nimi nové rozhraní (SAPI). Přidání podpory pro nový server je pak mnohem jednodušší. Dnes existují rozhraní, které PHP4 umožňují provozovat například jako modul serveru Apache, jako ISAPI modul v serveru IIS, jako Java servlet, …. K dispozici jsou i další možnosti včetně klasického rozhraní CGI, se kterým si poradí snad každý webový server.

Obrázek 1. Architektura PHP4

V následujících odstavcích se podíváme, na změny a novinky, které se nám určitě budou hodit.

© Jiří Kosek 2000