Hlavní navigace

Budoucnost PHP

Michal Samek

V závěrečné části našeho miniseriálu o PHP bych vás chtěl seznámit s budoucí verzí PHP4, která shodou okolností v době, kdy píši tento článek, právě vychází.

V současné době aktuální verze PHP3 dosáhla svého 11. vydání, které obsahuje hlavně opravy některých drobných chybiček předchozích verzí a jak se zdá, bude to jedno z posledních vydání. Pozornost vývojářů se totiž soustředila na nové PHP4, které právě vychází v betaverzi a které obsahuje úplně nový engine jazyka, Zend.

Zend oznámili jeho autoři (členové týmu PHP) někdy v lednu tohoto roku a od té doby netrpělivě čekám (a myslím, že nejenom já) na jeho veřejné uvolnění. Interpret PHP můžeme chápat jako 2 relativně samostatné části – samotné jádro jazyka, zodpovědné za načtení a vykonání kódu programu, a vestavěné knihovny funkcí. A právě Zend nahrazuje ve čtyřkové verzi staré jádro interpretu. Proč vlastně ? Pravdou je, že staré jádro jazyka nebylo zrovna optimální co do rychlosti běhu kódu a spotřeby paměti. Pokud píšete pouze malé skripty, které neprovádí příliš mnoho výpočtů a cyklů (často prostě jen zavoláte nějakou SQL query a vytisknete výsledek), tak to ani nepoznáte – váš kód stráví pravděpodobně většinu času vykonáváním některých vestavěných funkcí, které jsou psány v C a proto dostatečně rychlé. Pokud ale píšete v PHP složitější věci, pak zjistíte, že kód je vykonáván opravdu pomalu, v některých případech i pomaleji než v ASP. Také práce s pamětí byla neefektivní – ve skutečnosti docházelo k uvolňování prostředků, které použil váš PHP kód, až při ukončení běhu interpretu. To se může nepříjemně projevit nejenom v případě komplexních skriptů, ale i u intenzivně navštěvovaných we­bů.

Proto dali pánové Zeev Suraski a Andi Gutmans hlavy dohromady :) a napsali zgruntu nový interpret skriptů, který dali k dispozici OpenSource komunitě a který se kromě „motoru“ pro PHP má stát i skriptovacím modulem pro psaní uložených procedur v MySQL (celkem pěkná myšlenka psát skripty pro web i pro databázi ve stejném jazyku). Výsledek (dle autorů) stojí za to. Když budu parafrázovat oficiální informace z webu Zendu, bylo dosaženo maximální možné rychlosti vykonávání kódu. Podívejte se sami na výsledky několika testů, které srovnávají běh kódu mezi starým a novým PHP a mezi ASP a PHP4.

Kromě zvýšení rychlosti a zdokonalení správy paměti (Zend dělá klasické počítání referencí na alokovanou paměť) doznalo jádro jazyka některých drobných změn, zejména při práci s objekty a s poli – nová syntaxe vám umožní přístup k objektu v objektu a k poli v poli. Také můžete odkazovat na jednu proměnnou více identifikátory přiřazením reference $var1 = &$var2, volat funkci před její definicí, „bufferování“ výstupu (po volání ob_start() se začne veškerý výstup ukládat do bufferu, a vy se rozhodnete, zda jej nakonec pustíte ven ob_end_flush() nebo zrušíte ob_end_clean(). Veškeré HEADER informace se nebufferují, tzn. pomocí této techniky můžete posílat cookies a ostatní headery kdekoliv uvnitř kódu.) a v neposlední řadě má Zend integrovaný debugger s klasickými možnostmi break-pointů a prohlížení proměnných za běhu. Toto vše a několik dalších zde nezmíněných novinek dělá z PHP opět trochu dospělejší systém, se kterým se můžete pustit i do opravdu rozsáhlých projektů, přesto však by mělo být PHP4 100% kompatibilní s předchozí verzí (i když z některých nových vlastností vyplývá nutnost drobných úprav kódu).

Je zde ještě jedna podstatná vlastnost Zendu – v brzké době by měl být k dispozici kompilátor PHP skriptů do bytového kódu (podobný princip jako v javě), který by se měl vykonávat podstatně rychleji (ubude úvodní parsing kódu při každém spuštění interpretu), zabere méně místa (alespoň si to myslím) a samozřejmě nebude čitelný a upravitelný v běžném editoru. To nám umožní distribuci PHP aplikací bez rizika zneužití kódu zákazníkem ( ono i v době OpenSource revoluce se někteří z nás musí programováním živit, protože nic jiného neumí :) ) a u opravdu rozsáhlých projektů by to mělo být znát i na celkovém zabraném místě, což není k zahození, pokud máte providerem omezený rozsah pro hosting. Bohužel jsem jej neměl možnost vyzkoušet, zdá se, že v nové distribuci PHP tento nástroj není obsažen. A je docela možné, že kompilátor Zendu bude pouze pro platící – alespoň jsem něco takového zahlédl na mateřském webu projektu Zend.

Náš miniseriál o PHP končí. Díky za všech 5 ohlasů :)), chápu, že ti, co PHP dobře znají a používají zde nenašli příliš nového. O PHP budu na ROOTovi psát i dále, tentokrát už spíše tematicky zaměřené články. Připravuji něco o dynamickém generování obrázků a VRML (!!!) a také se budu snažit vyhledávat a recenzovat knihovny kódu pro PHP a celé aplikace vhodné k převzetí a přizpůsobení, psané v PHP. Byl bych rád, kdybyste mi napsali o svých projektech v PHP nebo o tom, co by vás zajímalo a o čem bychom zde měli psát.

Našli jste v článku chybu?
Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

DigiZone.cz: „Black Friday 2016“: závěrečné zhodnocení

„Black Friday 2016“: závěrečné zhodnocení

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

120na80.cz: Na ucho teplý, nebo studený obklad?

Na ucho teplý, nebo studený obklad?

Vitalia.cz: Co pomáhá dítěti při zácpě?

Co pomáhá dítěti při zácpě?

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Vitalia.cz: I církev dnes vyrábí potraviny

I církev dnes vyrábí potraviny

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

Vitalia.cz: Taky věříte na pravidlo 5 sekund?

Taky věříte na pravidlo 5 sekund?

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte