PHP 5 podrobně
Nedávno jsem stručně informoval s čím přichází PHP 5.0.0 Dnes přináším podrobnější pohled na nejzajímavější novinky.
V roce 1998 přišla verze PHP 3, která mimo zvýšení rychlosti přinesla i novou funkcionalitu. PHP 4 přinesla další zrychlení nazvané jako Zend Engine. Ačkoliv málo viditelné zlepšení, dopomohlo k většímu používání PHP pro tvorbu webu.
Po šesti letech jsme se konečně dočkali další inovace. V PHP 4 chybělo mnoho funkcí v objektově orientovaném programování. Rozšíření pro MySQL nepodporovalo novější 4.1 verzi komunikačního protokolu. A o XML ani nemluvě.
PHP 5 konečně zlepšuje PHP 4 ve třech důležitých oblastech:
- objektově orientované programování
- MySQL
- XML
Ačkoliv jsou tyto oblasti nejdůležitější, s novou verzí se objevilo i mnoho dalších vylepšení, které ale nebudou zmíněné v tomto příspěvku.
Zmíním jen ty nejdůležitější, které dopomohou k efektivnějšímu, rychlejšímu a pohodlnějšímu psaní kódu.
Robustní podpora OOP
Uživatelé požadovali rozšíření podpory OOP. Nyní se mohou těšit z následujících přidaných funkcí:
- konstruktory
- destruktory
- public, protected a private proměnné a metody
- interfacy
- abstraktní třídy
- statické proměnné a metody
Navíc jsou objekty vždy přiřazovány a volány pouze odkazem (není třeba přidávat & pro nahrazení volání hodnotou. Děje se tak automaticky.
Pokud při své tvorbě rádi používáte objekty a vzory (patterns), tak je to právě pro vás.
Kompletní přepis MySQL rozšíření
Protože nejeden vývojář tvoří ruku v ruce v PHP a v MySQL, tak bylo třeba s ohledem na vycházející nové verze 4.x a 5.x přepsat i rozšíření komunikující s databází.
Nové rozšíření nabízí:
- připravené dotazy
- vázané vstupní a výstupní parametry
- SSL připojení
- funkce pro multidotazování
MySQLi (jak je pojmenováno nové rozšíření) využívá i objektového rozšíření pětkové verze a nabízí objektově orientované rozhraní.
Souprava spolupracujícíh XML nástrojů
PHP 5 opravuje hlavně problém s XML rozšířením čtyřkové verze. PHP 4 umožňuje manipulaci s XML pouze povrchně, PHP 5 ne.
- pracuje dohromady jako celek
- standardizováno na jedné XML knihovně libxml2
- plně vyhovuje specifikaci W3 konsorcia
- efektivně zpracovává data
Protože tvorba aplikací pro web by měla být co nejjednodušší, tak je tu nové XML rozšíření, které umožní jednoduše číst a modifikovat XML dokumenty. Trefný název říká vše SimpleXML. Umožňuje přistupovat k XML datům jako do pole nebo k objektům. Iterace za pomoci foreach konstrukcí a změna hodnoty pouhým přiřazením nové hodnoty.
Pokud znáte formát XML dat, není problém načítat RSS, konfigurační data a podobně.
Fanoušci DOM objektů využijí rozšíření DOM, které je mnoho světelných let vzdáleno od toho, co obsahuje PHP 4.
Embedded databáze za pomoci SQLite
Rozhraní, které nepoužívá pro ukládání dat databázi. V některých případech může být výkonější než databáze. Není dobré odvozovat funkce z názvu - Lite - totiž vůbec není. Dokazují to i podporované funkce:
- transakce
- poddotazy
- triggery
- a mnoho dalších pokročilých databázových funkcí
Také je možné vytvořit vlastní uživatelsky definované funkce, které budou volány z tohoto databázového rozšíření.
Čistější ošetřování výjimek za pomoci výjimek
Úplně nový přístup k ošetřování chyb je zapracován do nového PHP. Místo jednotlivých kontrol je možné používat ošetřování výjimek. Je tak možné lépe oddělit logickou část programování a ošetřování chyb.
Stejně jako v Javě a nebo C++ jej najdete i v novém PHP.
Prvotřídní implementace SOAP
SOAP se stává mnohem častěji nedílnou součástí většiny nových webových služeb. Toto rozšíření umožní vývojářům tvořit SOAP klienty s nebo bez Web Service Description Language (WSDL) a také implementovat SOAP servery.
Ačkoliv tu již je několik SOAP balíčků napsaných přímo v PHP, žádný z nich nebyl napsán jako rozšíření (v C) a to bylo znát na jejich rychlosti.
Aktuálně implementované rozšíření SOAP podporuje většinu ze SOAP 1.2 a další části budou postupně doplněny.
Iterátory
Kompletně nová vychytávka v PHP 5. Pro různé typy dat můžete používat jednoduchý foreach na jejich procházení. Ať se již jedná o výpis adresářů, výsledky databáze a nebo XML dokumenty. SPL - Standard PHP Library - knihovna základních iterátorů, včetně limitů, cacheování, filtrování a modifikaci výsledků jednotlivých iterátorů.
Iterátory jsou neuvěřitelně vhodné pro abstraktnější pohled na nepřehledný detailní kód.
Například DirectoryIterator změní následující kód:
$dir = opendir($path); while (false !== ($file = readdir($dir))) { print "$file\n"; } closedir($dir);
změní na:
foreach (new DirectoryIterator($path) as $file) { print "$file\n"; }
Není třeba používat nepěkné podmínky vně ani uvnitř cyklu.
Další zajímavé fuknce
Sedm výše jmenovaných samozřejmě není vše, co vám nové PHP 5 nabízí, ale jde spíše o tu nejzajímavější špičku ledovce. Můžete se také těšit na:
- vylepšené streamy, wrappery a filtry
- sebepozorování za pomoci reflection tříd
- korektní HTML výstup díky Tidy
- vynikající funkčnost při volání z příkazové řádky
Volně přeloženo z článku: Why PHP 5 Rocks! - Adam Trachtenberg
Tip: Nevíte čím obdarovat nejbližší? Nechte je napsat Ježíškovi.