┌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